我正在学习 CMake,并进入了学习如何包含头文件的部分。问题是我得到一个错误,说没有找到头文件。
顺便说一句,我在 Windows 10 上。
我现在所拥有的只是一个src
和include
目录以及CMakeLists.txt
文件。在源代码中,我只有一个文件,并且在 include 中也只有一个文件。这是我的main.cpp
文件:
#include <iostream>
#include "include/main.h"
int main() {
std::cout << "Hello, World!\n";
sayHi("Joshua");
return 0;
}
这是我的CMakeLists.txt
文件。
cmake_minimum_required(VERSION 3.10)
set(CXX_STANDARD 17)
set(CXX_STANDARD_REQUIRED ON)
project(hello VERSION 1.0)
add_executable(hello ../src/main.cpp)
target_include_directories(hello PUBLIC ${CMAKE_CURRENT_SRC_DIR}/include)
编辑:我修复了源代码,以便包含main.h
,而不是include/main.h
,但我仍然遇到相同的错误:
"C:\Users\HP\desktop\test\4\build\hello.sln" (destino padrão) (1) ->
"C:\Users\HP\desktop\test\4\build\hello.vcxproj.metaproj" (destino padrão) (3) ->
"C:\Users\HP\desktop\test\4\build\hello.vcxproj" (destino padrão) (4) ->
(ClCompile destino) ->
C:\Users\HP\Desktop\test\4\src\main.cpp(3,10): fatal error C1083: Cannot open include file: 'main.h
': No such file or directory [C:\Users\HP\desktop\test\4\build\hello.vcxproj]
0 Aviso(s)
1 Erro(s)
```
What is going on?
是${CMAKE_CURRENT_SOURCE_DIR}
,不是${CMAKE_CURRENT_SRC_DIR}
。
如果你解决了这个问题,那么编译器应该会看到正确的包含目录。
目前因为该变量不存在,所以它看到的唯一目录/include
不是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句