链接器 – n处的成员不是ELF对象

链接器 – n处的成员不是ELF对象,第1张

概述我正在尝试为 Android构建一个库(Tesseract OCR).它似乎编译得很好,我得到了一堆静态库,但它在链接阶段失败了. 命令是: libtool: link: /opt/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi-g++ -fPIC 我正在尝试为 Android构建一个库(Tesseract OCR).它似乎编译得很好,我得到了一堆静态库,但它在链接阶段失败了.

命令是:

libtool: link: /opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androIDeabi-g++  -fPIC -DPIC -shared -nostdlib /opt/androID-ndk-r8c/platforms/androID-8/arch-arm/usr/lib/crtbegin_so.o  -Wl,--whole-archive ./.libs/libtesseract_API.a ../ccmain/.libs/libtesseract_main.a ../cube/.libs/libtesseract_cube.a ../neural_networks/runtime/.libs/libtesseract_neural.a ../textord/.libs/libtesseract_textord.a ../wordrec/.libs/libtesseract_wordrec.a ../classify/.libs/libtesseract_classify.a ../dict/.libs/libtesseract_dict.a ../ccstruct/.libs/libtesseract_ccstruct.a ../image/.libs/libtesseract_image.a ../cutil/.libs/libtesseract_cutil.a ../vIEwer/.libs/libtesseract_vIEwer.a ../ccutil/.libs/libtesseract_ccutil.a -Wl,--no-whole-archive  -Wl,-rpath -Wl,/Users/xxx/dev/libs/leptonica/current/androID-arm/release/lib -Wl,/Users/xxx/dev/libs/leptonica/current/androID-arm/release/lib -L./ -L../ -L../API -L../ccutil -L../vIEwer -L../cutil -L../image -L../ccstruct -L../dict -L../classify -L../wordrec -L../neural_networks/runtime -L../textord -L../cube -L../ccmain -L/opt/androID-ndk-r8c/platforms/androID-8/arch-arm/usr/lib -L/Users/xxx/dev/libs/leptonica/current/androID-arm/release/lib /Users/xxx/dev/libs/leptonica/current/androID-arm/release/lib/liblept.so -lz -L/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6/armv7-a -L/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6 -L/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc -L/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6/../../../../arm-linux-androIDeabi/lib -lstdc++ -lm -lc -ldl -lgcc /opt/androID-ndk-r8c/platforms/androID-8/arch-arm/usr/lib/crtend_so.o  -Os -march=armv7-a --sysroot /opt/androID-ndk-r8c/platforms/androID-8/arch-arm -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -Wl,-rpath-link=/opt/androID-ndk-r8c/platforms/androID-8/arch-arm/usr/lib   -Wl,-soname -Wl,libtesseract.so.3 -o .libs/libtesseract.so.3.0.1

输出看起来像:

/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6/../../../../arm-linux-androIDeabi/bin/ld: error: ./.libs/libtesseract_API.a: member at 8 is not an ELF object/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6/../../../../arm-linux-androIDeabi/bin/ld: error: ./.libs/libtesseract_API.a: member at 96 is not an ELF object/opt/androID-ndk-r8c/toolchains/arm-linux-androIDeabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.6/../../../../arm-linux-androIDeabi/bin/ld: error: ./.libs/libtesseract_API.a: member at 104400 is not an ELF object`...

据我所知,libtesseract_API.a和相关文件是有效的.知道这里发生了什么吗?这不是我以前见过的错误.

解决方法 检查您是否具有nm的正确存档类型

.../arm-linux-androIDeabi-nm .libs/libtesseract_API.a

您应该使用正确的格式.

总结

以上是内存溢出为你收集整理的链接器 – n处的成员不是ELF对象全部内容,希望文章能够帮你解决链接器 – n处的成员不是ELF对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1126815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存