Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 在32位系统上安装64位glib2以进行交叉编译_Ubuntu_Cross Compiling_64 Bit - Fatal编程技术网

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

Ubuntu 在32位系统上安装64位glib2以进行交叉编译,ubuntu,cross-compiling,64-bit,Ubuntu,Cross Compiling,64 Bit,我试图在32位ubuntu系统上交叉编译一个64位可执行文件。这一直工作到链接,由于缺少64位glib2(libglib-2.0.a),链接失败 如果在64位系统上执行此操作,我将使用将32位glib2安装到/usr/lib32中。然而,在32位机器上,getlibs似乎并没有起到相反的作用——将64位glib2安装到/usr/lib64中 我的问题是:如何手动执行getlibs应该执行的操作,即将64位glib2安装到/usr/lib64中?有几种方法。最直接的方法是下载一个工具链,该工具链随

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

如果在64位系统上执行此操作,我将使用将32位glib2安装到/usr/lib32中。然而,在32位机器上,getlibs似乎并没有起到相反的作用——将64位glib2安装到/usr/lib64中


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

有几种方法。最直接的方法是下载一个工具链,该工具链随您需要的目标库一起提供。考虑到这很可能不会发生,这里有一个解决这个问题的方法

我假设您正在使用gcc作为交叉编译器

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

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

  • 请注意,-Wl和-rpath链接之间没有空格,必须这样

    -L为编译器添加要查看的库路径。第二个参数,-Wl,-rpath link添加链接器的路径。必须两者都有,否则编译器将解析符号,但链接器将抱怨它没有链接nagainst的库