首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于ARM架构的Libcurl

用于ARM架构的Libcurl
EN

Stack Overflow用户
提问于 2019-10-08 07:10:11
回答 1查看 647关注 0票数 0

我在Windows7上交叉编译,我使用这个编译器:

代码语言:javascript
复制
gcc-linaro-arm-linux-gnueabihf-4.7-2013.03\bin\arm-linux-gnueabihf-g++.exe

我想对一些HTTP请求使用libcurl,但是当我使用-libcurl进行链接时,我得到了一条臭名昭著的消息:链接器找不到那个库。我试着在互联网上搜索这个架构的正确的库(ARMHF),但是我什么也找不到。也许我确实找到了,但我做错了事?我的链接调用很长,但下面是:

这是一个有效的方法,如果我添加-libcurl或任何相关的东西,它就会崩溃……

代码语言:javascript
复制
C:\vde\toolchains\windows\vos2\gcc-linaro-arm-linux-gnueabihf-4.7-2013.03\bin\arm-linux-gnueabihf-g++.exe -o out\RefApp -Wl,-rpath=C:\vde\SDKs\vos2\vos2-sdk-winx86-release-31010800\vos2\usr\lib -Wl,-r
path=C:\vde\SDKs\vos2\vos2-sdk-winx86-release-31010800\vos2\usr\local\lib -Wl,-rpath=C:\vde\SDKs\vos2\vos2-sdk-winx86-release-31010800\vos2\lib -Wl,-rpath=C:\vde\SDKs\vos2\vos2-sdk-winx86-release-3101
0800\vos2\usr\local\lib\svcmgr C:\desarrollo\corvet\out\corvet.a -LC:\desarrollo\RefApp\lib -LC:\vde\SDKs\vos2\vos2-sdk-winx86-release-31010800\vos2\usr\local\lib -LC:\vde\SDKs\vos2\vos2-sdk-winx86-re
lease-31010800\vos2\lib -LC:\vde\SDKs\vos2\vos2-sdk-winx86-release-31010800\vos2\usr\local\lib\svcmgr  -LC:\vde\ADKs\adk-full-4.6.5-610\vos2\lib -L -LC:\desarrollo\corvet\out -lrt -llog -lvfiguiprt -l
vfiipc -lTLV_Util -lpthread -lvfiplatforminfo -lsvc_utility -lvfibuzzer -lsvc_powermngt -lsvc_led -lvfisysinfo -lvfisysbar -lsqlite -lexpat -linf -lcom -levt -ltecclient -lmsrclient -lEMV_CT_Link -lEM
V_CT_Client -lEMV_CTLS_Link -lEMV_CTLS_Client -lNFC_Framework -lNFC_Client -lsvc_tms -lUtils -lseccmd-static -lsvc_sound -lccp -lcrypto -lsec -lseccmd-static -lsecins -lvfisvc -lvfisyspm -lvfimac -lvf
isec -lAdkCapX

我还试着下载了一些我在debian页面上找到的libcurl库,这些库应该是针对ARMHF的,我把它们放在某个文件夹里,使用-L(routetofolder),但也不起作用。

希望你们能帮帮我。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-30 08:29:44

那么,libcurl就在您从供应商那里得到的内容中(如果您查看/usr/lib,您会在那里找到它)。这是你的链接的问题。

您可能希望了解一下在linux系统上,动态库依赖项是如何在链接时以及以后的运行时解析的。它还将帮助您了解在vos2平台上可能发生的情况,当您尝试使用自己的动态库时,这些动态库可能具有冲突的名称,并且链接器可以将它们解析为存在于同一设备上但位于您可能没有读取权限的位置的内容,因为它属于不同的usrXX或sysXX。

从设备读取/etc/ld.so.conf将帮助您理解动态链接器执行的位置和搜索顺序。你可以从设备上获取文件,或者在OS.rfsbundle中找到它(查看skeletonfs),并设置正确的链接选项。我认为供应商通常不会将其与sysroot一起分发,但您可以手动添加它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58278220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档