在32位系统上安装64位glib2进行交叉编译

时间:2010-03-29 23:58:04

标签: ubuntu cross-compiling 64-bit

我正在尝试在32位ubuntu系统上交叉编译64位可执行文件。这可以直到链接,由于缺少64位glib2(libglib-2.0.a)而失败。

如果我在64位系统上执行此操作,我将使用getlibs将32位glib2安装到/ usr / lib32中。但是,在32位机器上,getlibs似乎没有相反的做法 - 将64位glib2安装到/ usr / lib64中。

我的问题是:如何手动执行getlibs应该做的事情,即将64位glib2安装到/ usr / lib64中?

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。最直接的方法是下载您需要的目标库附带的工具链。鉴于这很可能不会发生,这是解决这个问题的一种方法。

我将假设您使用 gcc 作为交叉编译器。

  1. 将目标系统所需的所有库复制到某个文件夹
  2. 在Makefile(或命令行)中将CFLAGS(以及CXXFLAGS,如果是C ++)设置为以下内容:

    -L / path / to / target / libs -Wl,-rpath-link / same / path / as / first

  3. 请注意-Wl和-rpath-link之间没有空格,必须这样。

    -L 为编译器添加库路径以供查看。第二个参数 -Wl,-rpath-link 添加链接器的路径。您必须同时拥有这两个,否则编译器将解析符号,但链接器会发出警告说它没有链接nagainst的库。