Qt Creator中(版本3.0.1,使用Qt 5.2.1版),我做了一个自定义cmake
步骤(而不是qmake
),具有以下CMakeLists.txt
文件:Qt Creator中无法找到的cmake定制库步
cmake_minimum_required (VERSION 2.8)
add_executable (myapp source.cpp)
target_link_libraries(myapp dl)
在我source.cpp
文件,我有以下代码:
#include <dlfcn.h>
int main()
{
dlopen("mylibrary.so", RTLD_NOW|RTLD_GLOBAL);
return 0;
}
而且mylibrary.so
位于/usr/lib
。
当我从命令行使用cmake
和make
进行编译时,它按预期编译。但是,如果我尝试Qt Creator中构建此,我收到以下错误:
undefined reference to `dlopen'
这表明,Qt Creator的不知道去哪里找找到libdl.so
,这是/usr/lib/x86_64-linux-gnu
。
所以我的问题是:为什么从命令行运行cmake
和make
工作,而在Qt Creator中构建不起作用?我该如何告诉Qt Creator在哪里搜索libdl.so
?
其中Ar目标你在QtCreator中使用? – lpapp 2014-11-24 13:06:01
顺便说一句,cmake 2.8很旧。请升级。 – lpapp 2014-11-24 13:17:12
您可以使用'CMAKE_DL_LIBS'变量。它是一个内置变量,可以保存dl库的路径。 http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_DL_LIBS.html – jet47 2014-11-27 18:18:22