You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion中CMake配置target_link_libraries链接GSL库报错如何解决?

错误原因
  • 你的target_link_libraries语句中错误加入了源文件main.cpp:target_link_libraries的作用是为构建目标指定需要链接的库文件,而源文件main.cpp已经通过add_executable(untitled main.cpp)声明为可执行目标的组成部分,不需要也不能放在链接库列表里。
  • 链接器收到错误参数后,会尝试查找名为libmain.cpp的系统库,自然会触发library not found for -lmain.cpp的报错。
解决方案

直接修改CMakeLists.txt中的target_link_libraries行,删掉其中的main.cpp即可,修改后该行应为:

target_link_libraries(untitled GSL::gsl)
可选优化建议
  • 不要在CMakeLists.txt中硬编码CMAKE_CXX_COMPILER路径,这种写法会导致项目移植性极差,建议改为在执行cmake命令时通过参数指定编译器,例如cmake .. -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/11.1.0_1/bin/g++-11
  • 你已经通过set(CMAKE_CXX_STANDARD 17)指定了C++标准,不需要再在CMAKE_CXX_FLAGS里加-std=c++17参数,避免重复配置
  • 已经通过find_package(GSL REQUIRED)导入了GSL的官方目标GSL::gsl,不需要额外手动加include_directories(${GSL_INCLUDE_DIR}),CMake会自动为链接了GSL::gsl的目标添加对应的头文件搜索路径

内容的提问来源于stack exchange,提问作者CafféSospeso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:48:04