2015-05-12 3 views
3

Я пытаюсь связать cpu_features android с родной библиотекой.
Я использую android's gcc компилятор непосредственно как кросс-компилятор. (НЕ ndk-build).Как связать cpufeatures lib с родной андроидной библиотекой?

Я включил заголовок ($ NDK_PATH/источники/Android/cpufeatures/CPU-features.h), но я не вижу прекомпилированное libcpufeatures.a файл в любом месте в папке НДК.
Как я могу построить эту библиотеку? Или где его можно найти, чтобы я мог правильно связать его?

ответ

3

Вы можете просто включить исходный файл cpu-features.c в проекте, или построить его вручную с помощью GCC:

arm-linux-androideabi-gcc -c cpu-features.c -o cpu-features.o --sysroot=$SYSROOT 
arm-linux-androideabi-ar rcs libcpufeatures.a cpu-features.o 

Это не требует никаких специальных флагов компилятора или дополнительных определяет, но при соединении с ней, вы может потребоваться добавить -ldl, так как он использует dlopen.

+0

Да, но тогда мне нужно будет включить это в каждую библиотеку, которая использует этот API, что не совпадает с привязкой. Я должен будет включить этот .c файл во все сборки. –

+0

Затем просто включите 'cpu-features.c' в качестве одного из исходных файлов в вашей библиотеке (или добавьте' cpu-features.o' в статическую библиотеку, если это то, что вы создаете в библиотеке). Поскольку вы точно не указали, какую библиотеку вы создаете, и какую систему сборки она использует, трудно точно сказать, что это самый удобный способ сделать это. – mstorsjo

Смежные вопросы