Сбой связывания для PCRE при использовании автономного набора инструментов Android NDK - PullRequest
5 голосов
/ 29 января 2012

Люди смогли создать PCRE (или подмножество), скопировав исходные файлы и создав соответствующий Andriod.mk. Я хочу сделать то же самое, но используя отдельный набор инструментов Android и просто используя их процесс настройки и создания. Я успешно построил другие полезные библиотеки, используя тот же поток, но столкнулся с проблемой с PCRE. В частности, в конце процесса make я получаю эту ошибку:

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 (и успешно сделали это) и хотят использовать один и тот же набор инструментов для всех сборок. Итак, мне нужно перестроить набор инструментов с некоторыми другими параметрами?

1 Ответ

1 голос
/ 06 февраля 2012

Похоже, -fno-use-cxa-atexit - приемлемый обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...