繁体   English   中英

使用Android NDK独立工具链时,链接PCRE失败

[英]Linking failing for PCRE when using Android NDK stand-alone toolchain

人们已经能够通过复制源文件和创建适当的Andriod.mk来构建PCRE(或其子集)。 我想做类似的事情,但使用Android独立工具链,只使用他们的配置和制作过程。 我已经使用相同的流程成功构建了其他有用的库,但是我遇到了PCRE的问题。 具体来说,在make flow的后期,我收到了这个错误:

undefined reference to__dso_handle' .libs/pcre_stringpiece.o

这样做的时候

/bin/bash ./libtool --tag=CXX   --mode=link arm-linux-androideabi-g++  -O2 -version-info 0:0:0                             -o libpcrecpp.la -rpath /usr/local/lib pcrecpp.lo pcre_scanner.lo pcre_stringpiece.lo libpcre.la 
libtool: link: arm-linux-androideabi-g++  -fPIC -DPIC -shared -nostdlib   .libs/pcrecpp.o .libs/pcre_scanner.o .libs/pcre_stringpiece.o   -Wl,-rpath -Wl,/home/corbin/applications/pcre-8.21/.libs ./.libs/libpcre.so -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc/arm-linux-androideabi/4.7.0 -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc -L/home/corbin/my-android-toolchain-mod/bin/../lib/gcc/arm-linux-androideabi/4.7.0/../../../../arm-linux-androideabi/lib -L/home/corbin/my-android-toolchain-mod/bin/../sysroot/usr/lib -lstdc++ -lm -lc -ldl -lgcc   -O2   -Wl,-soname -Wl,libpcrecpp.so.0 -o .libs/libpcrecpp.so.0.0.0
.libs/pcrecpp.o: In function `_GLOBAL__sub_I_pcrecpp.cc':
pcrecpp.cc:(.text.startup+0x94): undefined reference to `__dso_handle'
.libs/pcre_stringpiece.o: In function `_GLOBAL__sub_I_pcre_stringpiece.cc':
pcre_stringpiece.cc:(.text.startup+0x40): undefined reference to `__dso_handle'
collect2: error: ld returned 1 exit status
make[1]: *** [libpcrecpp.la] Error 1
make[1]: Leaving directory `/home/corbin/applications/pcre-8.21'

关于问题是什么以及解决方案是什么的任何想法? 我阅读了有关类似问题的各种事情,但它们大多没有帮助,或者不清楚它们是否与同一问题有关。

更新1:我发现当我使用默认的独立工具链时不会发生此问题。 它只发生在我使用这里描述的修改过的时候: http//specificimpulses.blogspot.com/2011/10/android-fortran-step-by-step-part-2.html我需要用它来构建其他库包括fortran(并且已成功完成)并且希望为所有构建使用相同的工具链。 那么,我是否需要使用一些不同的选项重建工具链?

看起来-fno-use-cxa-atexit是一种可接受的解决方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM