【问题标题】:GNU/Libtool cross-compilationGNU/Libtool 交叉编译
【发布时间】:2012-04-26 06:50:42
【问题描述】:

我对@9​​87654322@ 有一个非常基本的问题。我的项目由GNU/autotools 构建,包含由GNU/Libtool 构建的共享对象。我想在x86-64机器上编译i386共享对象,所以我这样做:

$ ./configure --build=i386
checking for a BSD-compatible install... /usr/bin/install -c
...
checking whether to build shared libraries... no
checking whether to build static libraries... yes
...
config.status: executing depfiles commands
config.status: executing libtool commands
$

配置脚本告诉我共享库不受支持,make 命令失败。如何解决这个交叉编译问题?

我应该在Libtool manual找到答案吗?

【问题讨论】:

    标签: shared-libraries gnu cross-compiling autotools libtool


    【解决方案1】:

    --build 通常用于 Canadian cross 编译之类的东西。您可能想要使用--host 选项。您尚未指定系统类型,但如果 ./config.guess 给出如下内容:

    x86_64-apple-darwinx86_64-pc-linux-gnu

    然后你会指定

    --host=i386-apple-darwini386-pc-linux-gnu

    另外 - 您可能需要设置一些编译器标志来强制生成 32 位代码。例如,

    env CC="gcc -m32" ./configure --host=....

    通常,-m32 选项就足够了 - 您无需为--host 选项而烦恼。

    【讨论】:

    • 已将-m32 标志添加到编译器和链接器以强制生成 32 位代码
    猜你喜欢
    • 2012-07-24
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2017-03-18
    相关资源
    最近更新 更多