在 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 开发包。