将 SDL C++应用程序交叉编译到 Android
Cross Compiling SDL C++ application to Android
我想将一个开源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.
除了可能我针对错误的架构并且谷歌搜索似乎返回的结果不是很好之外,我不确定该怎么想。
如果您需要该项目的链接,请告诉我。
最终,我将编译器切换到 g++ 4.4.9 从存储库中删除了 #include。
要下载编译器,请执行以下操作:https://developer.android.com/ndk/downloads/older_releases
在您的本地属性中添加行
ndk.dir=/path/to/your/ndk-bundle
最有效的方法是在您的应用程序中安装 build.gradle
您可以指定GCC编译器(不再受支持,但我的项目需要它)
externalNativeBuild {
cmake {
arguments '-DBUILD_TESTING=OFF', '-DANDROID_TOOLCHAIN=gcc'
cppFlags "-w -std=c++14"
}
我希望这对某人有所帮助.我只需要做一些小的更改来编译应用程序。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 用于交叉编译和CMake的预处理器宏的单元测试
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- Android 在编译二进制文件时重建静态库
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 无法使用 aarch64-unknown-nto-qnx7.0.0-g++-5.4.0 编译器交叉编译 QNX 平台的
- 如何使用导出的函数交叉编译 DLL
- 交叉编译:特殊的交叉编译器还是只是带有选项 -march 的 gcc?
- 交叉编译时包括外部库
- 如何交叉编译C++文件
- SFML 交叉编译 for Windows on Linux.
- 使用 cmake 交叉编译 libwebsockets
- 为 Android NDK 编译库
- 使用cmake交叉编译gRPC
- 拥有LLVM IR库如何从Ubuntu将其交叉编译到iOS,Android,Windows和Mac?
- 交叉编译用于Android的Palsiade
- 在 Centos 7 上交叉编译 protobuf 2.5.0 for Android
- 将 SDL C++应用程序交叉编译到 Android
- Android NDK不能交叉编译SQLite - crtend_so.0:没有这样的文件或目录
- Android Studio交叉编译静态库