我尝试着将一款游戏移植到Android上,但它是基于C语言,而Android也支持Java,但我相信一定有一种方法能够将C应用带到Android上,有人知道如何实现这一目标吗?
当前回答
本机C/c++文件libstdc++。*从你的Ubuntu是x86(或x86_64)二进制文件,但Android设备和模拟器是ARM。当然,即使您设置了正确的soname,这也不会起作用。这是一种非常幼稚的方式,不会有任何结果。Android对c++的支持非常有限,这意味着没有例外,标准c++库(包括STL)和RTTI。如果您需要这样的功能,请使用我的自定义NDK发行版
http://crystax.net/android/ndk.php -它支持上面列出的全部c++特性。
为什么有错误:未定义的引用'__cxa_end_cleanup'链接错误。Android stlport
时间。因为没有到libstdc++的链接。答:大错特错。
因为它使用了一些静态库,所以有必要链接完整的libstdc++。答:可以
http://crystax.net/android/ndk.php这里下载软件包
源代码\ cxx-stl \ gnu- libstdc++ \ libs \ armeabi目录。
Android对自身libstdc++的支持是有限的,它必须链接到一个完整的libstdc + +。A这份工作。
在Android中添加文件。mklocal_ldflags = $ (LOCAL_PATH) / libs / libcurl。一个\
$ (LOCAL_PATH) / libs / liblua.a \
`$ (LOCAL_PATH) / libs / libstdc + +. A`
可以编译LOCAL_CPPFLAGS + =- lstdc++ -fexceptions
其他回答
我不知道教程,但一个很好的开发工具:Ideaworks Labs的Airplay SDK。(最近更名为“Marmelade”)使用C/ c++,你可以为Windows Mobile, iphone, Android开发应用。我唯一不喜欢的组件是GUI编写器——一个bug,但你总是可以用记事本代替它。
自2009年以来,这一问题有了进展。 用于Android的Qt(c++框架) 视频开始。
谷歌发布了一个本地开发工具包(NDK)(根据http://www.youtube.com/watch?v=Z5whfaLH1-E在00:07:30)。
希望这些信息能在谷歌的群组页面(http://groups.google.com/group/android-ndk)上更新,因为上面说还没有发布。
我不确定从哪里可以得到一个简单的下载,但我听说你可以从谷歌的Git存储库在甜甜圈分支下获得一个NDK的副本。
谷歌已经在http://www.youtube.com/watch?v=5yorhsSPFG4上发布了谷歌I/O 2011:将C和c++游戏引入Android会议
这有助于理解NDK在c和c++中编写应用程序的使用。
如果你只是想交叉编译任何基于主机的原生游戏,并在android上运行它们,那么本文将展示3种方法。
1:使用独立工具链的静态编译
2:使用Android NDK的工具链进行交叉编译
3:交叉编译使用AOSP源代码
您可以下载c4droid,然后安装GCC插件并安装到SD上。从shell,我只是遍历到GCC二进制文件所在的目录,然后调用它,使其成为板上可执行文件。
查找/ -name GCC
/mnt/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/bin/arm-linux-androideabi-gcc
猫>测试
#include<stdio.h>
int main(){
printf("hello arm!\n");
return 0;
}
./arm-linux-androideabi-gcc test.c -o test
/测试。
你好手臂!
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- decltype(auto)的一些用途是什么?
- 碎片中的onCreateOptionsMenu
- Shared_ptr转换为数组:应该使用它吗?
- 使用C返回一个数组
- Printf与std::字符串?
- 禁用复制构造函数
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 只接受特定类型的c++模板
- c#和Java中的泛型有什么不同?和模板在c++ ?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值