/usr/bin/ld: 找不到 -lfreetype qt

Posted

技术标签:

【中文标题】/usr/bin/ld: 找不到 -lfreetype qt【英文标题】:/usr/bin/ld: cannot find -lfreetype qt 【发布时间】:2009-03-14 16:50:00 【问题描述】:

在 Fedora 10 上编译。

我是第一次使用 qt。我首先使用所有默认设置创建了一个简单的 GUI 应用程序。当我尝试构建项目时,我收到以下错误消息。

但是,当我搜索 -lfreetype 时,我在以下目录中找到了它。 /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so.6.3.18

有没有办法解决这个问题?

非常感谢您的建议

Running build steps for project test1...
Creating gdb macros library...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make debug -w 
make: Entering directory `/home/steve/projects/qt/test1/test1'
/usr/bin/make -f Makefile.Debug
make[1]: Entering directory `/home/steve/projects/qt/test1/test1'
g++ -Wl,-rpath,/opt/qtsdk-2009.01/qt/lib -o test1 debug/main.o 
  debug/mainwindow.o debug/moc_mainwindow.o 
  -L/opt/qtsdk-2009.01/qt/lib 
  -lQtGui -L/opt/qtsdk-2009.01/qt/lib -L/usr/X11R6/lib 
  -pthread -lfreetype 
  -lgobject-2.0 -lSM -lICE -pthread -pthread 
  -lXrender -lfontconfig 
  -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt 
  -lglib-2.0 -ldl -lpthread
/usr/bin/ld: cannot find -lfreetype
collect2: ld returned 1 exit status
make[1]: *** [test1] Error 1
make[1]: Leaving directory `/home/steve/projects/qt/test1/test1'
make: *** [debug] Error 2
make: Leaving directory `/home/steve/projects/qt/test1/test1'
Exited with code 2.
Error while building project test1
When executing build step 'Make'

【问题讨论】:

【参考方案1】:

您必须安装 freetype-devel 软件包。 devel 包包含头文件,在 freetype 的情况下应该位于:/usr/include/freetype。

【讨论】:

谢谢,我现在明白了 /usr/bin/ld: 找不到 -lgobject-2.0 collect2: ld 返回 1 退出状态 make[1]: *** [test1] Error 1 make[1 ]: 离开目录/home/steve/projects/qt/test1/test1' make: *** [debug] Error 2 make: Leaving directory /home/steve/projects/qt/test1/test1' 退出代码2。 我认为你必须添加 libgobject-2.0 或 gobject-2.0 包(不知道 Fedora 包的确切名称。)。 yum install glib2-devel 成功了。但是,现在我得到了这个: /usr/bin/ld: cannot find -lSM 我试过谷歌但不确定要安装什么包。 类似 xorg-x11-devel 的东西。 您好,没有包 xorg-x11-devel 是 x11 - 它们是 2 个吗?因为那是我输入的。 yum install xorg-x11-devel 加载的插件:refresh-packagekit 设置安装过程 解析包安装参数 没有包 xorg-x11-devel 可用。感谢您的任何其他建议,【参考方案2】:

我在 Ubuntu 8.10、QT 4.5 上遇到了同样的问题。我用以下奇怪的技巧“修复”了它:

    构建失败后,将 QT lib 目录重命名为其他名称 - 例如"mv ../../qtsdk-2009.01/qt/lib ../../qtsdk-2009.01/qt/lib2"

    再次运行“make”,又会失败。

    恢复lib目录

    再次运行“make”,现在可以运行了。

我不知道为什么会这样。

【讨论】:

【参考方案3】:

安装freetype1-dev libgtk2.0-dev 它会编译好的。

【讨论】:

【参考方案4】:

在 Ubuntu 9.04 上,安装 freetype1-dev & libgtk2.0-dev 解决了这个问题。

但令大家惊讶的是,Ross 提到的 hack 也有效,我真的很想知道如何以及为什么.. M 研究 QTcreator 的源代码,看看我是否能找出原因。如果有人知道原因,请告诉我。

谢谢..

【讨论】:

把问题当成问题,而不是答案。【参考方案5】:

刚刚安装了一个全新的 ubuntu 9.04 (dell D820) - 安装了 qt creator 没有别的 - 同样的问题

使用 S R 中的选项有效,因为它需要从包管理器安装 libgtk2.0-dev (这也将加载 freetype6 )。

如果您还从包管理器安装 qt Designer,您将看到相同的效果(它将安装所有正确的包

问候 妮可

【讨论】:

【参考方案6】:

我在使用 Elive、freetype1-dev 和 libgtk2.0-dev 时遇到了同样的问题,对于 /usr/bin/ld: cannot find -lSM thing xorg-dev 解决了这个问题。

【讨论】:

【参考方案7】:

首先要确保您的计算机中安装了 libfreetype.so。使用命令'locate libfreetype.so',你可能会发现结果中有一个'/usr/lib/libfreetype.so.6'。编译软件无法将 libfreetype.so.6 识别为共享库,因此,您必须对目标进行符号链接。使用命令'ln -s /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so',当你再次编译程序时,你会发现错误已经消失了。您还可以解决可能出现的错误。祝你好运!

【讨论】:

以上是关于/usr/bin/ld: 找不到 -lfreetype qt的主要内容,如果未能解决你的问题,请参考以下文章

/usr/bin/ld: 找不到 -ll

/usr/bin/ld: 找不到 -lpthreads

/usr/bin/ld: 找不到共享库

无法编译第一个 opencv 程序,'/usr/bin/ld: 找不到 -lcv'

/usr/bin/ld 找不到 -lbsd

gcc 错误“/usr/bin/ld: 找不到 -lstdc++”