В настоящее время я пытаюсь скомпилировать нативный код для Android. Код из порта OpenCV для Android. Я правильно вставил весь код в свой проект и соответственно отредактировал файлы make. Когда я устанавливаю android: debuggable в false, все работает нормально, и я получаю свою собственную библиотеку. Когда я пытаюсь установить для android: debuggable значение true, я получаю сообщение об ошибке. Вот часть журнала:
Compile++ thumb: cxcore <= AR_Still_Image/jni/cxcore/src/cxutils.cpp
AR_Still_Image/jni/cxcore/src/cxutils.cpp: In function 'void icvSort16u(ushort*, size_t, int)':
AR_Still_Image/jni/cxcore/src/cxutils.cpp:987: internal compiler error: in reload, at reload1.c:1173
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [AR_Still_Image/obj/local/armeabi/objs/cxcore/cxcore/src/cxutils.o] Error 1
Из того, что я нашел в интернете, это вызвано уровнем оптимизации компиляции. До тех пор, пока код не скомпилирован, и его можно отлаживать, все должно быть в порядке.
Теперь, по-видимому, этого можно избежать, установив APP-OPTIM := release
в Application.mk или добавив -O2
к LOCAL_CFLAGS
. Я пробовал и то, и другое, но все равно получаю эту ошибку.
В данный момент меня не особо волнует отладка моего нативного кода, но я бы хотел включить базовую отладку. И я не хочу продолжать переключать android: отладку в моем манифесте каждый раз, когда я хочу скомпилировать. Я даже не уверен, все ли в порядке, если я просто установлю android: debuggable на false перед компиляцией и на истинную посткомпиляцию, но я уверен, что забуду об этом при каждом втором запуске
Кто-нибудь сталкивался с подобной проблемой или кто-нибудь знает, как это исправить? Это было бы очень полезно.