在我的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++
编译器进行编译。
sqlite3.dll
,并将其存储在C:\Libraries\64_bit\SQLite3\bin\
本地。 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})