CMake:target_include_directories()无法找到头文件

时间:2017-05-05 18:25:41

标签: c++ cmake clion

在我的main.cpp文件的顶部,No such file or directory会引发#include <sqlite3.h>

g++ -I"C:\Libraries\64_bit\SQLite3\include\" -L"C:\Libraries\64_bit\SQLite3\bin\" -lsqlite3 main.cpp Class1.cpp Class1.h Class2.cpp Class2.h -o main手动构建代码不会引发任何错误。

CMake似乎找不到标题,即使我已经明确地描述了它在我的文件系统中的位置。根据{{​​3}}的文档,这应该足够了:

  

指定的包含目录可以是绝对路径或相对路径。重复调用相同的附加项称为。

为什么target_include_directories()功能找不到标题,即使我提供了确切的绝对路径?

我正在使用64位Windows 10计算机进行开发,并且已设置CLion以使用MinGW-w64 g++编译器进行编译。

  • 我已经下载了64位Windows预编译二进制文件sqlite3.dll,并将其存储在C:\Libraries\64_bit\SQLite3\bin\本地。
  • 为了访问SQLite C ++函数,我还下载了SQLite3的合并源代码,并将所有源文件存储在C:\Libraries\64_bit\SQLite3\include\中。

我在CLion中构建了我的项目,这本质上是CMake的一个奇特的GUI包装器。在我的CMakeLists.txt中,我已经包含了SQLite3的标题,并链接了sqlite3,如下所示:

cmake_minimum_required(VERSION 3.7)
project(My_Project)

set(CMAKE_CXX_STANDARD 11)

set(INCLUDE_DIRS C:\\Libraries\\64_bit\\SQLite3\\include\\)
set(LIBRARIES sqlite3.dll)
# My project's source code
set(SOURCE_FILES main.cpp Class1.cpp Class1.h Class2.cpp Class2.h)

add_executable(My_Project ${SOURCE_FILES})

# For compiler warnings
target_compile_options(My_Project PRIVATE -Wall)
# Including SQLite3's headers
target_include_directories(My_Project PRIVATE ${INCLUDE_DIRS})
# Linking against sqlite3.dll
target_link_libraries(My_Project ${LIBRARIES})

0 个答案:

没有答案