为“路径不可知”包含设置生成文件

Posted

技术标签:

【中文标题】为“路径不可知”包含设置生成文件【英文标题】:Setup makefile for 'path agnostic' inclusions 【发布时间】:2016-05-11 03:15:09 【问题描述】:

在我的项目文件中我只想说:

main.cpp:

#include <foo.h>
#include <bar.h>

当这些头文件位于不同的地方时

-Project
    -include
        -foo
           foo.h
        -bar
           bar.h
    -src
        main.cpp

我已经设置了我的 make 文件来尝试实现这一点,但我仍然得到 fatal error: foo.h: No such file or directory 所以我无法正确设置它。

生成文件:

LIBS = ./include/foo ./include/bar

all:
    g++ -o bin/myapp src/main.cpp $(LIBS) -std=c++11

LIBS 是否正确?如何实现相对/不可知的包含路径?

【问题讨论】:

您希望-I 标志用于设置目录,以便它查找头文件。如g++ -o bin/myapp src/main.cpp -I./include/foo -I./include/bar -std=c++11 【参考方案1】:
INCLUDES = -I./include/foo -I./include/bar

all:
    g++ -o bin/myapp src/main.cpp $(INCLUDES) -std=c++11

【讨论】:

以上是关于为“路径不可知”包含设置生成文件的主要内容,如果未能解决你的问题,请参考以下文章