在尝试构建我的示例项目时,刚刚面对ubuntu上的GCC, 发现需要链接的那三个库(来自主题)。 并且还发现' -lxxx'的顺序参数在命令行中很重要
但是我使用cmake作为构建系统,并且可以找到适用于cmake的内容。
目前这是:
if (${GCC})
target_link_libraries(${PROJECT_NAME} rt pthread stdc++fs)
endif (${GCC})
它并不适合我,链接器仍然无法从所有引用的库中找到引用的符号。
有人可以从cmake的角度帮助这个库链接吗?
答案 0 :(得分:4)
按照目前的情况,你的条件总是假的(变量不存在AFAIK),所以它里面的语句永远不会被考虑在内!
您需要更改:
if(${GCC})
要:
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
或者:
if(CMAKE_COMPILER_IS_GNUCXX)
现在检查C ++编译器是否为gcc / g ++。