我开始一个包含一些外部代码的大项目。到现在为止,我有这样的目录结构:如何组织目录结构并编写外部代码的Makefile
MyProject
|-- include
| |-- FANN
| | |-- src
| | | |-- include
| |-- eigen
| |-- Eigen
|-- MyLibrary
| +-- header1.H
| +-- header2.H
| +-- otherheaderN.H
|-- test
+-- Makefile
+-- test1.cpp
+-- testN.cpp
我使用CPP测试代码include
子目录的外部代码,MyLibrary
我自己的头文件,test
。
我有FANN,Eigen和其他库。我直接使用他们的代码,并且我没有包含文件,使用不同的目录以及类似的东西的经验。
在Makefile中我有这样的台词:
test1:
g++ -I $(FANN) -I $(FANNINCLUDE) -I $(EIGEN) -I $(MyLib) test1.cpp -o test1
这是我如何解决了它来编译,但不知道它是不是很好用各种-I选项。例如,看看我使用FANN作为FANN/src的路径,并使用FANNINCLUDE作为path/src/include;这是因为我包含了FANN/src /“doublefann.c”,它包含了一个#include“config.h”(在FANN/src/include中是config.h)。我是一团糟!
你会推荐一种更好的组织文件的方式,或者它是好的吗? 我在Makefile中做错了吗? 任何其他建议,将不胜感激。
你为什么包含一个.c文件? – 2012-07-07 16:51:03
@AnonMail这是因为库:“只需将文件doublefann.c或floatfann.c包含在您的项目中,一切都应该工作”http://leenissen.dk/fann/wp/help/installing-fann/ – jeanc 2012-07-07 16:55:13