我想知道是否有可能配置cmake,如果#include<...>
或#include "..."
包含标题文件,可能会有所不同吗?
让我们假设我有一个这样的项目:
src
foo.h
foo.c
lib
foo.h
foo.c
如何通过编写src/foo.h
来添加文件#include "foo.h"
,如果#include <foo.h>
中包含头文件,则会加载位置lib/foo.h
的文件?
它始终从第一个include_directories()
命令
include_directories(src)
include_directories(lib)
我项目中的当前问题:
我有一个名为string.h
的文件。其中包含一些自定义文本处理功能。现在我遇到的问题是,如果我写#include <string.h>
我的自定义文件已加载,但我希望系统文件为tring.h
。我不想重命名我的自定义文件,也不想将其移到文件夹中以包含它#include "custum/string.h"
我想要的只是:
#include <string.h> // load file from system library
#include "string.h" // load my custom file
我在IDE Keil中使用它就像这样,但我不知道是否可以用cmake完成
答案 0 :(得分:0)
更改包含订单
{
"capabilities": [
{
"seleniumProtocol": "WebDriver",
"browserName": "firefox",
"maxInstances": 3,
"version": "57",
"platform": "win7"
},
{
"seleniumProtocol": "WebDriver",
"browserName": "internet explorer",
"maxInstances": 1,
"version": "11",
"platform": "win7"
},
{
"seleniumProtocol": "WebDriver",
"browserName": "chrome",
"maxInstances": 4,
"version": "62",
"platform": "win7"
}
],
"loadedFromFile": "node_5555.json",
"proxy": "com.groupon.seleniumgridextras.grid.proxies.SetupTeardownProxy",
"servlets": [],
"maxSession": 7,
"port": 5555,
"register": true,
"unregisterIfStillDownAfter": 10000,
"hubPort": 4444,
"hubHost": "xxxxyyyyy.com",
"registerCycle": 5000,
"nodeStatusCheckTimeout": 10000,
"custom": {},
"downPollingLimit": 0
}
您需要将整个代码放在include_directories(lib)
include_directories(src)
中。在这种情况下,src
启动搜索当前文件的同一目录中的搜索文件。 #include "foo.h"
开始按#include <foo.h>"
的顺序搜索包含目录。
include_directories
对您自己的文件使用include_directories(src)
include_directories(parent_of_lib)
或#include "foo.h"
,对第三方包含的文件使用#include <foo.h>
。