Dmq*_*Csm 6 c++ dll cmake linker-errors
我试图将一个库链接到我的 cmake 项目,但我收到了链接器错误。我花了 2 个小时试图解决这个问题,并创建了一个简单的项目,其中我对所有路径进行了硬编码。
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
PROJECT(Testing CXX)
INCLUDE_DIRECTORIES("B:/Projects/TMH/Libraries/Awesomium/inc")
SET(SOURCE_FILES
src/Main.cpp
src/Application.cpp
src/Window.cpp
)
ADD_EXECUTABLE(Testing ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(Testing B:/Projects/TMH/Libraries/Awesomium/bin/awesomium.dll)
Run Code Online (Sandbox Code Playgroud)
但即使该代码也无法编译并引发如下链接器错误:
CMakeFiles\Testing.dir/objects.a(Application.cpp.obj): In function `ZN9PXLClient11ApplicationD2Ev':
B:/Projects/TMH/Testing/src/Application.cpp:15: undefined reference to `_imp___ZN9Awesomium7WebCore8ShutdownEv'
CMakeFiles\Testing.dir/objects.a(Application.cpp.obj): In function `ZN9PXLClient11Application3RunEv':
B:/Projects/TMH/Testing/src/Application.cpp:20: undefined reference to `_imp___ZN9Awesomium9WebConfigC1Ev'
Run Code Online (Sandbox Code Playgroud)
我要么尝试链接 .lib 文件而不是 .dll 文件。我变了
TARGET_LINK_LIBRARIES(Testing B:/Projects/TMH/Libraries/Awesomium/bin/awesomium.dll)
Run Code Online (Sandbox Code Playgroud)
到
TARGET_LINK_LIBRARIES(Testing B:/Projects/TMH/Libraries/Awesomium/lib/Awesomium.lib)
Run Code Online (Sandbox Code Playgroud)
但我得到了完全相同的错误。我 100% 确定两条路径都是正确的。
如何将 dll/lib 正确链接到 cmake 项目?
| 归档时间: |
|
| 查看次数: |
3784 次 |
| 最近记录: |