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