【问题标题】:Compiling for Android using Make on OSX在 OSX 上使用 Make 编译 Android
【发布时间】:2012-12-30 22:30:15
【问题描述】:

公平警告我对 GCC 开发有些陌生。

我目前正在尝试将 Box2D 个人移植到 android(技术臂)。我创建了一个独立的工具链,导出以下....

导出 PATH=/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: no archive symbol table (run ranlib) /private/tmp/my-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: obj/调试/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/调试/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: in function main:../../HelloWorld/Helloworld.cpp:53: error: undefined reference to 'b2PolygonShape::SetAsBox(float, float)'

如果我打开一个新终端(基本上是终止导出)并删除 bin 和 obj 文件夹,一切编译正常。一个快速的谷歌搜索表明这可能与使用 llvm 编译器而不是 GCC 相关(尽管我认为这不太可能)。独立工具链文档中有以下关于 llvm 的说明...

如果您愿意,添加 --llvm-version=3.1 以同时复制 clang/llvm 3.1。

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

谢谢!

【问题讨论】:

    标签: android gcc android-ndk makefile


    【解决方案1】:

    您可能使用的是 OSX 版本的 ar。从您的日志中无法确定。尝试设置export AR=arm-linux-androideabi-ar

    【讨论】:

    • 我们在 CMake 和 ExternalProject_Add 中遇到了类似的问题。我们必须将带有 CMAKE_ARGS 的工具链文件传递给外部项目,以便同时使用正确的 ar 版本,而不是 /usr/bin 中的那个
    • 我确实设置了 AR=arm-linux-androideabi-ar 我仍然面临这个问题。你能告诉我我还应该研究什么
    • 我设置了AR=arm-linux-androideabi-ar & CPREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-ar。但仍然面临同样的问题。如何解决这个问题?我正在 OSX 机器上为 android 构建它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多