包括c++预处理器指令在内的代码- Android NDK
Including C++ preprocessor directive in the code - Android NDK
StackOverFlow专家你好,
我对Android编程非常陌生,不幸的是,我在Android上的第一个项目涉及到使用c++库。这些是第三方库,必须使用它们。另外,我对c++也不熟悉。我已经成功安装了Android SDK (v4.2.2和APIv 17)和NDK (Android - NDK -r8e)。我能够编译c++代码并构建eclipse项目,并看到应用程序在我的Android设备上运行。
但是今天我知道我必须编译一个c++预处理器指令来使一些功能工作。据我所知,c++预处理器指令是在实际编译代码之前执行的。现在,多亏了google,我了解到执行预处理器指令的方法是修改makeall.sh文件,我做了以下操作:
ARCH="armeabi armeabi-v7a mips x86"
LIBDIR=../../mpcore/lib.android/libs
tmpdir=`mktemp -d /tmp/$0.XXXXX`
for arch in $ARCH; do
/Users/Desktop/android-ndk-r8e/ndk-build LOCAL_CPPFLAGS:=-DUSE_ORIGINAL_BACKGROUND LOCAL_LDFLAGS=-L$LIBDIR/$arch APP_ABI=$arch
cp libs/$arch/libsample.so $tmpdir/libsample.so.$arch
done
for arch in $ARCH; do
cp $tmpdir/libsample.so.$arch libs/$arch/libsample.so
done
rm -rf $tmpdir
其中USE_ORIGINAL_BACKGROUND是我的c++指令的名称。
当我运行makeall.sh时,它编译得很好(至少我没有看到任何错误)。然后打开eclipse项目,刷新它,然后构建APK文件。但是,不幸的是,我没有看到预期的结果。
所以我的问题是:我错过了什么吗?我修改makeall.sh的方法听起来对吗?
对不起,如果这个问题对你们来说是非常初级的,但它真的会帮助我学习并在学习Android方面取得进展。提前感谢大家
我修复了这个问题。似乎我需要从库和obj文件夹中删除所有现有编译的c++代码。然后我刷新eclipse项目,将APK文件复制到我的Android设备上,它工作了!!
相关文章:
- Android Studio 中带有静态库的原生C++代码
- 如何在 Android Studio 4 中编译 C/C++ 原生代码
- 如何在 android ndk 上链接 C 和 C++ 代码,以及 C 和 C++ 运行时库(包括 STL)?
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- 使用 Android NDK 使用 clang++ 编译C++代码时对"_Unwind_Resume"的未定义引用
- 如何通过用C++编写的代码将位图图像保存在Android设备中
- Android 无法从本机代码调用 Java 方法 JNI
- 在Android中运行没有ART/Dalvik参与的代码
- Android NDK-天然C 代码的静态分析
- Android Studio 调试原生代码 lldb 服务器工作无穷大
- 无法将Android WebView渲染到C 和Java代码之间共享的外部纹理中
- 使用 Android Studio 使用本机代码编译 apk 时,如何在链接处删除 libgnustl_static.
- Android Studio 项目中的 c++ 代码是否最终出现在 apk 文件中(除了 .so 文件)
- Android- AAR库的调试本机代码
- 如何在Android中使用OpenCV C 代码
- 从 Android JNI/NDK 代码中的C++函数调用 C 函数
- 使用 NDK for Android 编写 OpenGL 代码
- Android 开发:将代码更新到更新的 NDK
- 包括c++预处理器指令在内的代码- Android NDK