簡體   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