我正在开始一个包含一些外部代码的大项目。到目前为止,我有一个这样的目录结构:
MyProject
|-- include
| |-- FANN
| | |-- src
| | | |-- include
| |-- eigen
| |-- Eigen
|-- MyLibrary
| +-- header1.H
| +-- header2.H
| +-- otherheaderN.H
|-- test
+-- Makefile
+-- test1.cpp
+-- testN.cpp
我将include
subdir 用于外部代码、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中做错了吗?任何其他建议,将不胜感激。