【发布时间】:2018-01-22 12:17:00
【问题描述】:
我想知道是否有可能配置 cmake,如果头文件包含在 #include<...> 或 #include "..." 中,是否有可能有所作为?
假设我有一个这样的项目:
src
foo.h
foo.c
lib
foo.h
foo.c
如何通过写入#include "foo.h" 来添加文件src/foo.h,如果头文件包含在#include <foo.h> 中,则加载位置lib/foo.h 的文件?
它总是从第一个include_directories() 命令加载文件
include_directories(src)
include_directories(lib)
编辑
我目前在项目中遇到的问题:
我有一个名为string.h 的文件。其中包含一些用于自定义文本处理的功能。现在我遇到的问题是,如果我写#include <string.h>,我的自定义文件已加载,但我希望系统文件为 string.h。我不想重命名我的自定义文件,也不想将它移动到文件夹中以包含它,例如 #include "custum/string.h"
我想要的是:
#include <string.h> // load file from system library
#include "string.h" // load my custom file
我在IDE Keil里面是这样用的,不知道cmake能不能做到
【问题讨论】:
-
你可以怀疑,因为它们使用相同的搜索路径
-
请务必仔细阅读this question 中的second 和third answer。在那之后,希望你确信你在这里尝试做的是一个非常糟糕的主意。