您好,登錄后才能下訂單哦!
構(gòu)建cpp-netlib錯(cuò)誤1
在我的上一篇文章(1)中,在進(jìn)行到build and install cpp-netlib部分的下列命令時(shí):
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
出現(xiàn)錯(cuò)誤提示,如下圖所示:
意思非常明顯:系統(tǒng)還沒有安裝OpenSSL庫(kù)。
我立即執(zhí)行如下命令:
openssl version
結(jié)果如下:
OpenSSL 0.9.8zg 14 July 2015
說明系統(tǒng)變量OPENSSL_ROOT_DIR還有建立。
另外,根據(jù)簡(jiǎn)單分析得知,這個(gè)0.9.8ZG版本是MAC系統(tǒng)自帶的,而且不完全。
再如下命令:
brew link openssl --force
輸出如下:
Linking /usr/local/Cellar/openssl/1.0.2f... 1561 symlinks created
其實(shí),這個(gè)正是我以前使用brew命令安裝的。進(jìn)一步通過ls命令分析,這個(gè)文件夾(/usr/local/Cellar/openssl/1.0.2f)下具有齊備的一切。
于是,根據(jù)上面的錯(cuò)誤提示,把上面的編譯命令修改為如下:
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2f -DOPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl/1.0.2f/include |
這里的解決方案中,我們沒有在系統(tǒng)環(huán)境配置文件(.bash_profile)中加入對(duì)應(yīng)的環(huán)境變量。
上面的命令在運(yùn)行時(shí)成功,輸出如下內(nèi)容:
-- Boost version: 1.60.0
-- Found the following Boost libraries:
-- unit_test_framework
-- system
-- regex
-- date_time
-- thread
-- filesystem
-- program_options
-- chrono
-- atomic
-- Found OpenSSL: /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib (found version "1.0.2f")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/lib/cpp-netlib/cpp-netlib-build
經(jīng)過上述操作后,再次構(gòu)建和運(yùn)行cpp-netlib成功,但是在運(yùn)行其中有關(guān)的幾個(gè)實(shí)例時(shí)出現(xiàn)錯(cuò)誤。這個(gè)問題后面再另外撰文介紹。
構(gòu)建jsoncpp庫(kù)沒有問題
操作步驟如下:
$ cd lib/jsoncpp $ mkdir jsoncpp-build $ cd jsoncpp-build $ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ $ make -j4 && make install
構(gòu)建AVOSCloud C++ SDK庫(kù)出現(xiàn)錯(cuò)誤
按照下述步驟操作:
$ cd cpp-sdk $ mkdir cpp-sdk-build $ cd cpp-sdk-build $ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ $ make -j4 && make install
在進(jìn)行到最后一步時(shí)出現(xiàn)如下所示錯(cuò)誤:
zxz-iMac:cpp-sdk-build zxzpc$ make -j4 && make install
Scanning dependencies of target avoscloud
[ 14%] Building CXX object src/CMakeFiles/avoscloud.dir/ACL/AVACL.cpp.o
[ 11%] Building CXX object src/CMakeFiles/avoscloud.dir/AVOSCloud.cpp.o
[ 14%] Building CXX object src/CMakeFiles/avoscloud.dir/ACL/AVRole.cpp.o
[ 14%] Building CXX object src/CMakeFiles/avoscloud.dir/AVObject/AVObject.cpp.o
In file included from /Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/src/ACL/AVACL.cpp:16:
/Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/include/Request/AVPaasClient.h:19:10: fatal error:
'boost/network/protocol/http/client.hpp' file not found
#include <boost/network/protocol/http/client.hpp>
^
In file included from /Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/src/AVObject/AVObject.cpp:18:
/Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/include/Request/AVPaasClient.h:19:10: fatal error:
'boost/network/protocol/http/client.hpp' file not found
#include <boost/network/protocol/http/client.hpp>
^
In file included from /Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/src/AVOSCloud.cpp:14:
/Users/zxzpc/Downloads/leancloud-cpp-sdk/cpp-sdk/include/Request/AVPaasClient.h:19:10: fatal error:
'boost/network/protocol/http/client.hpp' file not found
#include <boost/network/protocol/http/client.hpp>
^
1 error generated.
1 error generated.
make[2]: *** [src/CMakeFiles/avoscloud.dir/ACL/AVACL.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/CMakeFiles/avoscloud.dir/AVObject/AVObject.cpp.o] Error 1
1 error generated.
make[2]: *** [src/CMakeFiles/avoscloud.dir/AVOSCloud.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/avoscloud.dir/all] Error 2
make: *** [all] Error 2
這種錯(cuò)誤看起來簡(jiǎn)單,主要是頭文件中嵌套引用頭文件路徑不對(duì)出現(xiàn)的錯(cuò)誤。
.........
參考文章:
http://stackoverflow.com/questions/16248775/cmake-not-able-to-find-openssl
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。