2016-10-21 76 views
3

對cmake來說,這是非常新穎的東西。 我想將eclipse paho添加到我的項目中,因此我使用「ExternalProject_add」。這裏是我的CMakeLists.txt的摘錄:如何用cmake構建eclipse paho

ExternalProject_add( 
libressl 
URL ${CMAKE_SOURCE_DIR}/externals/libressl-2.5.0.tar.gz 
CONFIGURE_COMMAND ./configure --disable-hardening --prefix=${CMAKE_BINARY_DIR} 
BUILD_IN_SOURCE 1) 

ExternalProject_add( 
paho 
DEPENDS libressl 
URL ${CMAKE_SOURCE_DIR}/externals/eclipse-paho-mqtt-c-src-1.1.0.tar.gz 
CMAKE_ARGS -DPAHO_WITH_SSL -DOPENSSL_INC_SEARCH_PATH=${CMAKE_SOURCE_DIR}/include -DOPENSSL_LIB_SEARCH_PATH=${CMAKE_SOURCE_DIR}/lib 
BUILD_COMMAND make 
BUILD_IN_SOURCE 1) 

事情是libressl建設得很好。正如你可以看到它使用autoconf工具。

我的問題是paho在「配置步驟」中引發錯誤。

~/projects/cmake_test/CL_Test/build$ cmake .. 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /projects/cmake_test/CL_Test/build 
:~/projects/cmake_test/CL_Test/build$ make 
[ 50%] Built target libressl 
[ 56%] Performing configure step for 'paho' 
CMake Error at /projects/cmake_test/CL_Test/build/paho-prefix/src/paho-stamp/paho-configure-.cmake:16 (message): 
Command failed: 1 

'/usr/bin/cmake' '-DPAHO_WITH_SSL' '-DOPENSSL_INC_SEARCH_PATH=/home/hbaumann/projects/cmake_test/CL_Test/include' '-DOPENSSL_LIB_SEARCH_PATH=/home/hbaumann/projects/cmake_test/CL_Test/lib' '-GUnix Makefiles' '/projects/cmake_test/CL_Test/build/paho-prefix/src/paho' 

CMakeFiles/paho.dir/build.make:107: recipe for target 'paho-prefix/src/paho-stamp/paho-configure' failed 
make[2]: *** [paho-prefix/src/paho-stamp/paho-configure] Error 1 
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/paho.dir/all' failed 
make[1]: *** [CMakeFiles/paho.dir/all] Error 2 
Makefile:83: recipe for target 'all' failed 
make: *** [all] Error 2 

我想,因爲paho默認使用CMake構建,所以沒有什麼我真的需要添加。在這裏你可以看到,我對CMake的知識真的很低。

讓我想到的是,在paho tar-ball中,主文件夾中只有一個Makefile,而不是CMakeLists.txt。

我有什麼想法......是否有一個特殊的配置命令,我需要設置?

提前

+0

'我想,因爲paho是默認使用CMake構建的,所以'你怎麼知道這個?看看[這裏]的說明(http://www.eclipse.org/paho/clients/cpp/)我不會這麼說,事實上你已經發現你只有一個Makefile,而不是CMakeLists.txt – Antonio

+0

是啊,它困擾我...我注意到我沒有切斷所有路徑/目錄條目與我的本地用戶名在它...我的錯誤:(我也試圖改變我的配置文件名在我的個人資料,但它說我不能做到這一點從現在開始的30天 – Heiko

+0

我不記得我在哪裏閱讀了「paho默認使用cmake構建」......也許是我的錯誤,我注意到git-repo與tar-球,在主目錄中有一個CMakeLists.txt – Heiko

回答

2

可以使用Git倉庫THX,它有一個CMakeList.txt。

ExternalProject_add(
paho 
DEPENDS libressl 
GIT_REPOSITORY "https://github.com/eclipse/paho.mqtt.c.git" 
GIT_TAG "master" 
UPDATE_COMMAND "" 
PATCH_COMMAND "" 
SOURCE_DIR "${CMAKE_BINARY_DIR}/paho_sourcedir" 
CMAKE_ARGS -DPAHO_WITH_SSL=TRUE -DOPENSSL_INC_SEARCH_PATH=${CMAKE_BINARY_DIR}/include -DOPENSSL_LIB_SEARCH_PATH=${CMAKE_BINARY_DIR}/lib -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/paho_prefix 
) 
+0

是啊謝謝...這對我很有用!就像我已經說過的安東尼奧,結構從焦油-git與git-repo不同,感謝您的幫助 – Heiko