
我有这样结构的项目(windows 系统+vscode+cmaketools+mingw)
|-bin | |-include| | \includes.h | |-src| | \main.cc | |CmakeLists.txt | |-CmakeLists.txt 我在 main.cc 中使用 #include "include\includes.h" 包含头文件
但是我使用在src目录下使用命令g++ -shared -o ../bin/test.exe -I ..include .\main.cc编译时提示include\includes.h不存在
我在根目录的 CmakeLists.txt 中通过add_subdirectory(src)包含 src 的 Cmake File 。 在 src\CmakeLists.txt 使用了如下代码
# 设置 exe 源代码变量 add_library(curldll SHARED dllmain.cc) target_compile_definitions(curldll PRIVATE EXPORT) target_include_directories(curldll PRIVATE ../include) 在该项目中使用 cmake 编译,还是提示找不到include\includes.h文件,我只能通过include "..\include\includes.h"来包含头文件
但是我看 GitHub 上面的其他项目都是通过#include "include\includes.h"包含,很奇怪该怎么做才不会报错。
1 Nasei 2021-12-07 17:22:00 +08:00 直接 include "includes.h" 就可以把... |
2 proxytoworld OP @Nasei 谢谢大佬编译没问题,但是 vscode 会标红提示找不到头文件 |
3 XiaoyehuaDev 2021-12-07 17:47:55 +08:00 @proxytoworld vscode 要设置 include path |
4 hhjuteman 2021-12-07 17:56:17 +08:00 target_include_directories(PATH) <=> g++ -I${PATH} 如果用的 vscode c++插件,里面应该有 compiler_command.json 相关的选项。 插件根据 compiler command 的数据进行符号索引 推荐使用 clangd |
5 proxytoworld OP @xipuxiaoyehua OK 了 谢谢大佬 |
&nbp; 6 proxytoworld OP @hhjuteman 我试试 |
7 TimothyT 2021-12-07 22:47:25 +08:00 g++是不是少打了个分隔符? -I ../include cmake 的话在 target_include_directories 下一行把 INCLUDE_DIRECTORIES 打印出来看看添加成功了没试试 |