构建cpp应用程序

Build cpp application

本文关键字:应用程序 cpp 构建      更新时间:2023-10-16

我有一个文件列表(cpp、h,以及里面带有cpp/h的子文件夹)。

我不知道如何正确构建它,因为它没有任何类似的makefile或smth(纯c++文件)。所以我决定"抓住"正确的gcc参数来构建它

g++ *.cpp `wx-config --libs` `wx-config --cxxflags` -lGL -lglut -lfkr-skeletal2d

现在我有了那条线。以下是文件列表:

$ ls -p
AnimationEditor/  Core-Code/  GLRender.cpp  GLSprite.cpp  Icons/         LGPLv3.txt      MainWindow.h  PlayBar.h  PopUp.h       TimeLine.h
BoneEditor/       daten/      GLRender.h    GLSprite.h    LGPLv3_de.txt  MainWindow.cpp  PlayBar.cpp   PopUp.cpp  TimeLine.cpp  wxWidgets_Addons/

目录Core-Code:中有文件

AnimationManager.cpp  AnimationManager.h  SkeletalManager.cpp  SkeletalManager.h  TextureManager.cpp  TextureManager.h

当我使用gcc行时,我会得到很多链接器错误:

undefined reference to `CSkeletalManager::***
undefined reference to `CAnimationManager::***

也许,我必须以某种方式指定Core-Code中的文件。我不能理解这个问题。

最好的方法是付出一点努力,实际创建一组Makefile;一个顶级文件和子目录的子Makefiles。但是,如果您只想使用创建命令行的相同方法,请先将"*.cpp"替换为find . -name '*.cpp',使其包含所有*.cpp文件。我认为在那之后,您将在查找*.hpp文件时遇到问题,因此需要添加一些-I选项来告诉g++在哪里查找标头。

所以类似的东西

g++ `find . -name '*.cpp'` -IAnimationEditor -IBoneEdiror -ICore-Code `wx-config --libs` `wx-config --cxxflags` -lGL -lglut -lfkr-skeletal2d

我还会在命令行中添加:Core-Code/*.cpp