直观地:
.dll(动态链接)/ .lib(静态链接)。.so/ .abinary。我发现了什么:
.dlls和.as.so和静态链接到.a。.lib而关于SO的另一个问题则表明它不起作用。不幸的是,我在MinGW和MinGW-w64上找不到明确的文档来说明在动态/静态链接库时正确与错误的地方。
根据我的经验,我一直能够动态链接到.dll。一次,我能够静态链接到.lib(使用-static标志)。
题:
是.dll/ .a与MinGW的-W64 GCC工具链编译的二进制文件时拨出动,静链接库?换句话说,为MSVC生成的动态库和为GCC生成的静态库?
在我的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 似乎无法找到标头,即使我已经明确描述了它在我的文件系统中的位置。根据 的文档target_include_directories(),这应该足够了:
指定的包含目录可以是绝对路径或相对路径。按调用顺序重复调用相同的附加项目。
为什么target_include_directories()即使我提供了确切的绝对路径,该函数也找不到标题?
我正在 64 位 Windows 10 机器上开发,CLion 设置为使用 MinGW-w64g++编译器进行编译。
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) …Run Code Online (Sandbox Code Playgroud)