【发布时间】:2021-03-04 08:27:33
【问题描述】:
这是我的基本文件结构:
├── BUILD
│ └── lib
│ └── *.a files
│ └── include
│ └── library
├── test.cpp
└── CmakeLists.txt
我正在尝试将包含和 lib 文件夹文件链接到 test.cpp。这是我当前的 CmakeLists.txt 文件:
cmake_minimum_required(VERSION 3.10)
project(test)
set(CMAKE_CXX_STANDARD 14)
add_executable(test test.cpp)
target_include_directories(test PUBLIC ${CMAKE_SOURCE_DIR}/BUILD/include)
target_link_libraries(test not-sure-what-to-put-here)
我知道我的target_include_directories 行正在工作,但是无论我为target_link_libraries 输入什么,它似乎总是失败并给出错误:
undefined reference to `_imp___ZN2sf6StringC1EPKcRKSt6locale'
undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'
undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
我希望就我的 CMakeLists.txt 文件的问题得到帮助,谢谢!
编辑 1,这是针对静态链接库的
【问题讨论】:
-
那么我需要在 lib 文件夹中包含每个 .a 文件吗?
-
那么我需要在 lib 文件夹中包含每个 .a 文件吗? 不是具有查找器模块且受 CMake 支持的库.我不知道你的 .a 文件是干什么用的。如果它们是 SFML,则其得到很好的支持。我的第一个链接描述了正确的方法。
-
"这可能是你想要的,因为你标记了 sfml:github.com/SFML/SFML/wiki/…" 遗憾的是,该教程已经过时了
-
对不起,请点击论坛帖子的链接以获得更好的解决方案:https://en.sfml-dev.org/forums/index.php?topic=24070.0
标签: c++ makefile cmake linker sfml