Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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
GCC链接器不';当使用-L/-L时,在64位系统上找不到32位库?_Gcc_32bit 64bit_Ld - Fatal编程技术网

GCC链接器不';当使用-L/-L时,在64位系统上找不到32位库?

GCC链接器不';当使用-L/-L时,在64位系统上找不到32位库?,gcc,32bit-64bit,ld,Gcc,32bit 64bit,Ld,在64位系统中,如果我尝试编译configure测试,则失败: $ gcc -m32 -o conftest -L/usr/lib/i386-linux-gnu/ conftest.c -lfreetype /usr/bin/ld: cannot find -lfreetype collect2: ld returned 1 exit status 但如果我这样做,它是成功的: $ gcc -m32 -o conftest conftest.c /usr/lib/i386-linux-gnu/

在64位系统中,如果我尝试编译
configure
测试,则失败:

$ gcc -m32 -o conftest -L/usr/lib/i386-linux-gnu/ conftest.c -lfreetype
/usr/bin/ld: cannot find -lfreetype
collect2: ld returned 1 exit status
但如果我这样做,它是成功的:

$ gcc -m32 -o conftest conftest.c /usr/lib/i386-linux-gnu/libfreetype.so.6

在第一种情况下,为什么找不到32位的libfreetype.so.6?

运行时和开发系统之间存在差异。链接器正在查找
libfreetype.so
,但找不到它。运行时程序正在查找
libfreetype.so.6并找到它

您应该安装FreeType开发包

不过,在进行大量工作之前,您可以先检查
libfreetype.so
/usr/lib/i386 linux gnu
中不存在,然后使用root权限执行以下操作,从而验证此假设:

cd /usr/lib/i386-linux-gnu
ln -s libfreetype.so.6 libfreetype.so
然后重试第一个命令行


如果可行,请删除刚刚创建的符号链接,然后安装FreeType开发包。

我无法在我的64位系统上安装libfreetype6 dev:i386,因为它有缺陷的依赖项将迫使apt get删除gcc和其他重要的开发包。好的,然后您可以尝试使用kludge修复程序。如果这对支票有效,你可能没问题。当然,您正在配置的包很可能需要来自FreeType库的头文件,除非它只是依赖于FreeType的预编译包。无论如何,尝试一下kludge(我展示的
ln-s
命令)是值得的。最糟糕的情况是,这还不够。但是,如果您继续遇到FreeType库的问题,那么为自己构建它并不困难。有趣的是,我本周正试图在64位机器上构建一些32位软件,我不得不修复几个库,每个库都有自己的符号链接,如前所述。