首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用到其他.so的链接编译共享库

使用到其他.so的链接编译共享库
EN

Stack Overflow用户
提问于 2012-12-13 17:03:07
回答 3查看 2.7K关注 0票数 1

在编译我自己的共享库时,我希望将现有的共享库(FlashRuntimeExtensions.so)链接到我的C代码。但是无论我怎么尝试,我总是得到相同的错误:文件的格式错误。有没有人有办法解决这个问题?

下面是我的编译命令:

代码语言:javascript
复制
$ g++ -Wall ane.c FlashRuntimeExtensions.so -o aneObject
FlashRuntimeExtensions.so: could not read symbols: File in wrong format
collect2: ld gaf exit-status 1 terug
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-13 18:15:58

命令行会尝试生成x86代码,并使用发行版中提供的本机g++将其链接到ARM代码。

这是行不通的。使用此处提供的Android NDK:http://developer.android.com/tools/sdk/ndk/index.html

NDK包括一组跨工具链(编译器、链接器等)。可以在Linux、OS和Windows (带有Cygwin)平台上生成本地ARM二进制文件。

票数 1
EN

Stack Overflow用户

发布于 2012-12-13 17:05:41

一般情况下,将使用-l链接.so

例如,我们使用的pthread -lpthread

gcc sample.c -o myoutput -lpthread

但是根据@chill的声明,您在命令中所做的只是正确的。

我建议你参考下面的链接。

C++ Linker Error SDL Image - could not read symbols

票数 0
EN

Stack Overflow用户

发布于 2013-04-22 16:47:38

这应该是架构不匹配。我曾经遇到过这个问题,我通过在相同的目标平台上构建库来解决它,这是显而易见的。如果你使用linux或Unix之类的操作系统,你可以通过file命令看到这一点,如果你使用windows,你可以使用Dependency Walker看到它。您需要确保所有的库都与体系结构匹配。

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

https://stackoverflow.com/questions/13856308

复制
相关文章

相似问题

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