【发布时间】:2012-07-07 16:43:14
【问题描述】:
我正在启动一个包含一些外部代码的大项目。到目前为止,我的目录结构是这样的:
MyProject
|-- include
| |-- FANN
| | |-- src
| | | |-- include
| |-- eigen
| |-- Eigen
|-- MyLibrary
| +-- header1.H
| +-- header2.H
| +-- otherheaderN.H
|-- test
+-- Makefile
+-- test1.cpp
+-- testN.cpp
我将include 子目录用于外部代码,MyLibrary 用于我自己的头文件,test 用于cpp 测试代码。
我有 FANN、Eigen 和其他库。我直接使用他们的代码,但我没有包含文件、使用不同目录以及类似的东西的经验。
在 Makefile 我有这样的行:
test1:
g++ -I $(FANN) -I $(FANNINCLUDE) -I $(EIGEN) -I $(MyLib) test1.cpp -o test1
我是这样解决编译的,但是不知道用各种-I选项是不是不好。例如,我使用 FANN 作为指向 FANN/src 的路径,使用 FANNINCLUDE 作为路径/src/include;这是因为我包含了 FANN/src/"doublefann.c" 并且它有一个 #include"config.h"(在 FANN/src/include 中是 config.h)。我一团糟!
您会推荐一种更好的文件组织方式吗? 我在Makefile中做错了吗? 任何其他建议,将不胜感激。
【问题讨论】:
-
为什么要包含 .c 文件?
-
@AnonMail 这是因为库:“只需在您的项目中包含文件 doublefann.c 或 floatfann.c 就可以了”leenissen.dk/fann/wp/help/installing-fann