构建cpp应用程序
问题描述:
我有一个文件列表(cpp,h,也是cpp/h里面的子文件夹)。构建cpp应用程序
我不知道如何正确构建它,因为它没有任何makefile或者像这样的纯粹(纯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
的文件。我无法理解这个问题。
答
最好要做的事情是要付出一点努力,并实际创建一套Makefiles;一个顶级的子目录,以及子目录的子Makefile。但是如果你想用同样的方法创建一个命令行,首先用find . -name '*.cpp'
替换你的'* .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
到命令行。
是的,您必须指定文件,就像您可以将这些文件复制到与其他文件相同的文件夹并再次尝试编译,如果仅缺少这些文件,您可能会得到一个干净的编译和链接。 – 2011-06-11 11:23:58