博舍

百度智能云——自然语言处理 自然语言处理百度云

百度智能云——自然语言处理

交叉编译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":"离愁"}]}

成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇