百度智能云——自然语言处理
交叉编译curl,参考99.3.2
交叉编译openssl,参考99.5.1
交叉编译jsoncpp,参考99.7.1
创建arm编译脚本
arm-linux-gnueabihf-g++main.cpp-omain-std=c++11-I/home/lux/Downloads/Curl/Arm/curl-8.1.2/include/-I/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/include/-I/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/include/-L/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib/-L/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/_install_forArm/lib/-L/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/_install_forArm/lib/-lcurl-lcrypto-ljsoncpp提示
/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_set_srp_password@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_use_certificate_chain_file@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘OPENSSL_init_ssl@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_set0_wbio@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_use_PrivateKey@OPENSSL_1_1_0’未定义的引用.../home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_set_ciphersuites@OPENSSL_1_1_1’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_set_cipher_list@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_get_peer_certificate@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_CTX_set_verify@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_shutdown@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_get_privatekey@OPENSSL_1_1_0’未定义的引用/home/lux/Downloads/Curl/Arm/curl-8.1.2/_install_Forarm/lib//libcurl.so:对‘SSL_get0_alpn_selected@OPENSSL_1_1_0’未定义的引用说是ssl和curl的版本不匹配
降低curl为7.38.0版本
重新交叉编译一个curl版本
修改arm的编译脚本
arm-linux-gnueabihf-g++main.cpp-omain-std=c++11-I/home/lux/Downloads/Curl/Arm/curl-7.38.0/include/-I/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/include/-I/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/include/-L/home/lux/Downloads/Curl/Arm/curl-7.38.0/_install_Forarm/lib/-L/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/_install_forArm/lib/-L/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/_install_forArm/lib/-lcurl-lcrypto-ljsoncpp编译成功
将main放到根文件系统中,在开发板上执行./main
提示./main:errorwhileloadingsharedlibraries:libcurl.so.4:cannotopensharedobjectfile:Nosuchfileordirectory把交叉编译的curl的文件放到根文件系统的中├──bin│├──curl│└──curl-config├──include│└──curl│├──curlbuild.h│├──curl.h│├──curlrules.h│├──curlver.h│├──easy.h│├──mprintf.h│├──multi.h│├──stdcheaders.h│└──typecheck-gcc.h├──lib│├──libcurl.a│├──libcurl.la│├──libcurl.so->libcurl.so.4.3.0│├──libcurl.so.4->libcurl.so.4.3.0│├──libcurl.so.4.3.0│└──pkgconfig│└──libcurl.pc└──share├──aclocal│└──libcurl.m4└──man├──man1└──man3sudocpbin/*~/Linux/nfs/buildrootfs2019/usr/bin/-rfasudocpinclude/*~/Linux/nfs/buildrootfs2019/usr/include/-rfasudocplib/*~/Linux/nfs/buildrootfs2019/usr/lib/-rfasudocpshare/*~/Linux/nfs/buildrootfs2019/usr/share/-rfa在开发板上再次执行./main
提示./main:errorwhileloadingsharedlibraries:libjsoncpp.so.25:cannotopensharedobjectfile:Nosuchfileordirectory把交叉编译的jsoncpp的文件放到根文件系统的中sudocplib/*~/Linux/nfs/buildrootfs2019/usr/lib/-rfa在开发板上再次执行./main
提示{"curl_error_code":1}看来是能成功运行了提示的错误信息意思是指curl不支持协议,从百度智能云的访问情况来看应该是https协议,通过在开发板上执行curl-V查看,确实不支持
curl-7.38.0移植配置的时候就能看到不支持https协议,没想到在这里出问题了,搞了一天半,各种版本配合测试,都不行,curl-8.1.2支持https协议,但是程序检查编译的时候不行,于是就想了一个不是办法的办法。编译的时候,用指定的7.38.0的路径,但是,开发板的文件系统的库用curl-8.1.2的文件。这样就可以交叉编译了,同时开发板也支持https协议了。我试过是可以的。一个人独自研究是太慢了,搜了好多文章还是没解决,看来Linux学习是应该找同伴一起。
执行交叉编译
arm-linux-gnueabihf-g++main.cpp-omain-std=c++11-I/home/lux/Downloads/Curl/Arm/curl-7.38.0/include/-I/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/include/-I/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/include/-L/home/lux/Downloads/Curl/Arm/curl-7.38.0/_install_Forarm/lib-L/home/lux/Downloads/Jsoncpp/jsoncpp_Arm/_install_forArm/lib/-L/home/lux/Downloads/OpenSSL/ForArm/openssl-1.1.1d/_install_forArm/lib/-lcurl-lcrypto-ljsoncpp在开发板上运行
{"log_id":1665275110318083458,"poem":[{"content":"一曲离愁对月弹 千般别绪向谁言 相思梦里随风去 欲语还休泪已干","title":"离愁"}]}成功