Кросс-компиляция приложения SDL C ++ для Android - PullRequest
0 голосов
/ 02 января 2019

Я хочу скомпилировать проект C ++ с открытым исходным кодом для Android.Проект работает в Linux, но его необходимо скомпилировать в 32-разрядную версию.

Вот выходные данные процесса компиляции https://pastebin.com/9CkVVD9i

Вот мой файл CMAKE, с которым я работаю.https://pastebin.com/eMDntghP

Проблема в том, что при компиляции я вижу тонны этих ошибок.

  /home/qndel/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/7.0.2/include/mmintrin.h:324:19: error: use of undeclared identifier '__builtin_ia32_punpcklwd'
      return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
                    ^
  /home/qndel/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/7.0.2/include/mmintrin.h:345:19: error: use of undeclared identifier '__builtin_ia32_punpckldq'
      return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
                    ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  ninja: build stopped: subcommand failed.

Я не уверен, что думать, кроме, может быть, я нацеливаюсь на неправильную архитектуру, и поиск в Google, кажется, дает не очень хорошие результаты.

Дайте мне знать, если вам нужна ссылка на проект.

1 Ответ

0 голосов
/ 06 января 2019

В конце концов, я переключил компиляторы на g ++. 4.4.9 удалил #include из репозитория.

Чтобы загрузить компилятор: https://developer.android.com/ndk/downloads/older_releases

В вашем local.properties добавьтеline

ndk.dir=/path/to/your/ndk-bundle

И что больше всего помогло, так это установка в вашем приложении build.gradle

Вы можете указать компилятор GCC (который больше не поддерживается, но мойпроект требует этого)

externalNativeBuild {
            cmake {
                arguments '-DBUILD_TESTING=OFF', '-DANDROID_TOOLCHAIN=gcc'
                cppFlags "-w -std=c++14"
            }

Надеюсь, это кому-нибудь поможет.Мне только нужно было внести небольшие изменения, чтобы скомпилировать приложение.

...