在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'
答案 0 :(得分:6)
您必须安装freetype-devel软件包。 devel包中包含头文件,在freetype的情况下,它应位于:/ usr / include / freetype。
答案 1 :(得分:5)
我在Ubuntu 8.10,QT 4.5上遇到了同样的问题。我用以下奇怪的黑客“修复”了它:
构建失败后,将QT lib目录重命名为其他内容 - 例如“mv ../../qtsdk-2009.01/qt/lib ../../ qtsdk-2009.01 / qt / lib2”
再次运行“make”,它将再次失败。
恢复lib目录
再次运行“make”,现在可以正常运行。
我不知道为什么会这样。
答案 2 :(得分:0)
安装freetype1-dev libgtk2.0-dev 它会编译好。
答案 3 :(得分:0)
在Ubuntu 9.04上,安装freetype1-dev& libgtk2.0-dev解决了这个问题。
但是为了让罗斯提到的黑客工作的每个人都感到惊讶,我真的很想知道如何以及为什么......我正在研究QTcreator的源代码,看看我能否找到原因。如果有人知道原因,请告诉我。
谢谢..
答案 4 :(得分:0)
刚刚安装了新的ubuntu 9.04(dell D820) - 没有安装qt creator - 同样的问题
使用S R中的选项,因为它需要从包管理器安装的libgtk2.0-dev(这也将加载freetype6)。
如果您还从包管理器安装qt设计器,它将会看到相同的效果(它将安装所有正确的包
问候 尼科
答案 5 :(得分:0)
我和Elive,freetype1-dev和libgtk2.0-dev有同样的问题,对于/ usr / bin / ld:找不到-lSM的东西xorg-dev修复了这个问题。
答案 6 :(得分:0)
您必须确保首先要在计算机中安装libfreetype.so。使用命令'locate libfreetype.so',您可能会发现结果中有'/usr/lib/libfreetype.so.6'。编译软件无法将libfreetype.so.6识别为共享库,因此,您必须创建到目标的符号链接。使用命令'ln -s /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so',再次编译程序时,您会发现错误消失了。您也可以解决错误。祝你好运!