公平警告我对gcc的开发有些陌生。
我正在尝试将box2d的个人端口移植到android(tech arm)。我创建了一个独立的工具链,导出以下…
导出路径=/tmp/my android toolchain/bin:$path
导出cc=arm linux androideabi gcc
导出cxx=arm-linux-androideabi-g++
然后我运行make,一切“似乎”运行良好,然而,在最后我看到…
/private/tmp/my toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld:错误:bin/debug/libbox2d.a:没有存档符号表(运行ranlib)
/private/tmp/my toolchain/bin/../lib/gcc/arm linux androideabi/4.6/../../../../arm linux androideabi/bin/ld:obj/debug/helloworld/helloworld.o:在函数main中:../../helloworld/helloworld.cpp:38:错误:未定义对“b2world::b2world(b2vec2 const&)”的引用
/private/tmp/my toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld:obj/debug/helloworld/helloworld.o:在函数main中:../../helloworld/helloworld.cpp:47:错误:未定义对“b2world::createbody(b2bodydef const*)的引用'
/private/tmp/my toolchain/bin/../lib/gcc/arm linux androideabi/4.6/../../../../arm linux androideabi/bin/ld:obj/debug/helloworld/helloworld.o:在函数main中:../../helloworld/helloworld.cpp:53:错误:未定义对“b2polygonshape::setasbox(float,float)”的引用
如果我打开一个新的终端(基本上杀死了导出),删除bin和obj文件夹,一切都会编译得很好。google的一个快速搜索表明,这可能与使用llvm编译器而不是gcc有关(尽管使用cc我认为这不太可能)。在独立的工具链文档中有关于llvm的以下说明…
如果愿意,可以添加--llvm version=3.1来复制clang/llvm 3.1。
我应该添加llvm吗?这是仿生学与众不同的问题吗?
谢谢!
最佳答案
你可能使用的是OSX版本的AR。无法从你的日志中确定。尝试设置export AR=arm-linux-androideabi-ar
关于android - 在OSX上使用Make进行Android编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14361217/