在尝试构建我的示例项目时,刚刚在 ubuntu 上遇到了 GCC, 找到了链接所需的三个库(来自主题)。 并且还发现“-lxxx”参数的顺序在命令行中很重要
但是我使用 cmake 作为构建系统,并且可以发现这适用于 cmake。
目前这是:
if (${GCC})
target_link_libraries(${PROJECT_NAME} rt pthread stdc++fs)
endif (${GCC})
它对我不起作用,链接器仍然无法从所有引用的库中找到引用的符号。
有人可以从 cmake 的角度帮助处理这个库链接吗?
最佳答案
就目前情况而言,您的条件始终为假(据我所知,该变量不存在),因此永远不会考虑其中的语句!
您需要更改:
if(${GCC})
致:
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
或者:
if(CMAKE_COMPILER_IS_GNUCXX)
现在检查 C++ 编译器是否为 gcc/g++。
关于c++ - GCC6 中 undefined reference 为 'rt' ,'pthread' ,'stdc++fs',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278853/