公平警告我对GCC的发展有点新鲜。
我目前正在尝试将Box2D的个人端口用于android(技术部门)。我创建了一个独立的工具链,导出以下内容....
export PATH = / tmp / my-android-toolchain / bin:$ PATH
导出CC = arm-linux-androideabi-gcc
导出CXX = arm-linux-androideabi-g ++
然后我运行Make,一切“看起来”运行正常,但是,最后我看到......
/私人/ TMP /我的工具链/ bin中/../ LIB / GCC /臂-Linux的androideabi / 4.6 /../../../../臂-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文件夹,一切都编译好了。一个快速的谷歌搜索建议这可能与使用llvm编译器而不是GCC相关(尽管我的CC我觉得这不太可能)。在独立工具链文档中有以下llvm说明...
如果您愿意,可以添加--llvm-version = 3.1来复制clang / llvm 3.1。
我应该添加llvm吗?这是仿生学的一个问题吗?
谢谢!
答案 0 :(得分:8)
您可能正在使用OS的OSX版本。无法确定您的日志。尝试设置export AR=arm-linux-androideabi-ar