2015-09-15 5 views
1

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

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

Какую платформу вы строите и как вы построили libnice.so? '[arm64-v8a]' ARM 64-бит. Остальная часть вашего кода нацелена на 64-битный ARM-v8, иначе компоновщик потерпит неудачу, поскольку двоичные файлы несовместимы. – o0rebelious0o

+0

Я строю для ARM 64, я построил свой libnice.so только для ARM64, и я использовал все зависимости Libnice, которые были построенный для ARM 64. – Aagman

ответ

0

Эта ошибка возникает, если адрес из «без знака Int» передаются для 64 битной сборки, которая будет хорошо для 32 битных строить, но должна быть без знака длиной 64 бит. Pass -m64/-m32 в командной строке для управления целью сборки.