/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的主要内容,如果未能解决你的问题,请参考以下文章