使用Make on OSX为Android编译

Jac*_*kie 2 android gcc makefile android-ndk

公平警告我对GCC的发展有些新意.

我目前正在尝试为Android(技术部门)做一个Box2D的个人端口.我创建一个独立的工具链,导出以下....

export PATH =/tmp/my-android-toolchain/bin:$ PATH

export CC = arm-linux-androideabi-gcc

export 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文件夹,一切编译都很好.一个快速的谷歌搜索建议这可能与使用llvm编译器而不是GCC相关(尽管我的CC我认为这不太可能).在独立工具链文档中有以下llvm说明...

如果您愿意,可以添加--llvm-version = 3.1来复制clang/llvm 3.1.

我应该添加llvm吗?这是仿生学与众不同的问题吗?

谢谢!

Fro*_*zie 8

您可能正在使用OS的OSX版本.无法确定您的日志.尝试设置export AR=arm-linux-androideabi-ar