我有一个项目,它有两个源文件夹(main 和 lib)。它生成一个共享库和一个可执行文件。它目前是这样构建的:
- 将两个文件夹中的所有文件复制到一个新的临时文件夹中
- 运行 lib_makefile
- 运行 main_makefile
- 复制二进制文件
- 删除临时文件夹
这让我觉得这是一种奇怪的做事方式,所以我尝试通过添加-I../main
到 lib_makefile 来就地构建每个(反之亦然)。不幸的是,这似乎不起作用。
说明性示例: foo.cpp(在 lib 中)包括 bar.h(在 main 中),其中包括 baz.h(在 lib 中)。
当我尝试编译共享库时,它在 main/ 中正确定位 bar.h,但随后以“没有这样的文件或目录”退出,声称它找不到 baz.h,即使 baz.h 与lib_makefile!
所有包含都采用#include "xxx.h" 格式(即在包含语句中没有相对路径)。
有没有办法让它工作?我觉得我一定错过了一些明显的东西..
(注意:我无法修改#includes,因为其他人仍然以复制一切的方式构建它)