Ошибка компоновщика Android - ndk: неопределенная ссылка на `G_STATIC_ASSERT'

Я строю Android-проект для arm64-v8 и использую NDK-r10e. У меня есть сборка Libnice 0.13, использующая ее зависимость (Glib 2.35.8), и у меня есть все скомпилированные зависимости Glib (intl, iconv, ffi). Так что мне удалось создать статические библиотеки Glib, а затем использовать мои библиотеки glib для создания статической библиотеки Libnice. Теперь я использую эти статические библиотеки для создания своего проекта Android, я получаю следующие ошибки, и я понятия не имею, почему он дает мне ошибки компоновщика, потому что во время создания этих библиотек все было хорошо для меня.

libnice.a(pseudotcp.o): In function `pseudo_tcp_socket_get_type':
/Users/aagman/Desktop/LibNIce/libnic/Newlibnice/jni/files/agent/pseudotcp.c:78:  undefined reference to `G_STATIC_ASSERT'

In function `nice_agent_get_type':
/Users/aagman/Desktop/LibNIce/libnic/Newlibnice/jni/files/agent/agent.c:85:      undefined reference to `G_STATIC_ASSERT'
/Users/aagman/Desktop/LibNIce/libnic/Newlibnice/jni/files/agent/agent.c:85:  undefined reference to `G_STATIC_ASSERT'

1 ответ

Решение

Эта ошибка возникает, если адрес "unsigned int" передается для 64-битной сборки, что было бы хорошо для 32-битной сборки, но должно быть длиной без знака для 64-битной сборки. Передайте -m64 / -m32 в командной строке, чтобы контролировать цель сборки.

Другие вопросы по тегам