溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LeanCloud C++ SDK初步安裝測(cè)試記錄(2)

發(fā)布時(shí)間:2020-07-23 11:06:42 來源:網(wǎng)絡(luò) 閱讀:528 作者:googlingman 欄目:開發(fā)技術(shù)


構(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ò)誤提示,如下圖所示:

LeanCloud C++ SDK初步安裝測(cè)試記錄(2)

意思非常明顯:系統(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






向AI問一下細(xì)節(jié)

免責(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)容。

AI