2

我使用以下选项配置 qt-x11

./configure -prefix /iTalk/qtx11 -prefix-install -bindir /iTalk/qtx11-install/bin -libdir /iTalk/qtx11-install/lib -docdir /iTalk/qtx11-install/doc -headerdir /iTalk/qtx11-安装/包括 -datadir /iTalk/qtx11-install/data -examplesdir /iTalk/qtx11-install/examples -demosdir /iTalk/qtx11-install/demos -debug。

现在我在 Fedora Core 6 中遇到以下错误。

你能告诉我问题出在哪里吗?

obj/debug-shared/qapplication_x11.o:在函数 `qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long)'中:
/iTalk/QT4/qt/src/gui/kernel/qapplication_x11.cpp:1713:未定义对“FcInit”的引用
.obj/debug-shared/qfontdatabase.o:在函数“queryFont”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1727:未定义对“FcFreeTypeQuery”的引用
.obj/debug-shared/qfontdatabase.o:在函数“registerFont”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1959:未定义对“FcConfigGetCurrent”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1963:未定义对“FcConfigGetFonts”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1965:未定义对“FcConfigAppFontAddFile”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1966:未定义对“FcConfigGetFonts”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1985:未定义对“FcConfigGetBlanks”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1997:未定义对“FcPatternDel”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1998:未定义对“FcPatternAddString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:2001:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:2006:未定义对“FcFontSetAdd”的引用
.obj/debug-shared/qfontdatabase.o:在函数“qt_FcPatternToQFontDef(_FcPattern*, QFontDef const&)”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:746:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:751:未定义对“FcPatternGetDouble”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:759:未定义对“FcPatternGetDouble”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:771:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:776:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:786:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:793:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:800:未定义对“FcPatternGetInteger”的引用
.obj/debug-shared/qfontdatabase.o:在函数“FcFontSetRemove”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1573:未定义对“FcPatternDestroy”的引用
.obj/debug-shared/qfontdatabase.o:在函数“qt_fontSetForPattern(_FcPattern*, QFontDef const&)”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1657:未定义对“FcFontSort”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1671:未定义对“FcPatternGetBool”的引用
.obj/debug-shared/qfontdatabase.o:在函数“qt_addPatternProps(_FcPattern*, int, int, QFontDef const&)”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1449:未定义对“FcPatternAddInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1456:未定义对“FcPatternAddInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1459:未定义对“FcPatternAddDouble”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1464:未定义对“FcPatternAddInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1468:未定义对“FcPatternAddBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1471:未定义对“FcPatternAddBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1476:未定义对“FcLangSetCreate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1477:未定义对“FcLangSetAdd”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1478:未定义对“FcPatternAddLangSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1479:未定义对“FcLangSetDestroy”的引用
.obj/debug-shared/qfontdatabase.o:在函数“tryPatternLoad”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1588:未定义对“FcPatternDuplicate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1593:未定义对“FcConfigSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1594:未定义对“FcDefaultSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1596:未定义对“FcFontMatch”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1606:未定义对“FcPatternDuplicate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1613:未定义对“FcPatternGetCharSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1615:未定义对“FcCharSetHasChar”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1619:未定义对“FcPatternGetLangSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1621:未定义对“FcLangSetHasLang”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1628:未定义对“FcPatternDel”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1629:未定义对“FcPatternAddBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1646:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1648:未定义对“FcPatternDestroy”的引用
.obj/debug-shared/qfontdatabase.o:在函数“loadFontConfig”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1023:未定义对“FcObjectSetCreate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1024:未定义对“FcPatternCreate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1037:未定义对“FcObjectSetAdd”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1040:未定义对“FcFontList”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1041:未定义对“FcObjectSetDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1042:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1046:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1057:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1059:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1061:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1063:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1065:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1067:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1069:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1074:未定义对“FcPatternGetLangSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1081:未定义对“FcLangSetHasLang”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1100:未定义对“FcPatternGetCharSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1107:未定义对“FcCharSetHasChar”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1116:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1136:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1153:未定义对“FcPatternGetDouble”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1161:未定义对“FcFontSetDestroy”的引用
.obj/debug-shared/qfontdatabase.o:在函数“getFcPattern”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1494:未定义对“FcPatternCreate”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1509:未定义对“FcPatternAdd”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1516:未定义对“FcPatternAddWeak”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1524:未定义对“FcPatternAddWeak”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1531:未定义对“FcPatternAddInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1533:未定义对“FcPatternAddBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1535:未定义对“FcPatternAddBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1539:未定义对“FcDefaultSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1540:未定义对“FcConfigSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1541:未定义对“FcConfigSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1550:未定义对“FcPatternAddWeak”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1557:未定义对“FcPatternAddWeak”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1564:未定义对“FcPatternAddWeak”的引用
.obj/debug-shared/qfontdatabase.o:在函数“loadFc”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1707:未定义对“FcFontSetDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1716:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:1718:未定义对“FcPatternDestroy”的引用
.obj/debug-shared/qfontdatabase.o:在函数“QFontDatabase::removeAllApplicationFonts()”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:2048:未定义对“FcConfigAppFontClear”的引用
.obj/debug-shared/qfontdatabase.o:在函数“QFontDatabase::removeApplicationFont(int)”中:
/iTalk/QT4/qt/src/gui/text/qfontdatabase_x11.cpp:2027:未定义对“FcConfigAppFontClear”的引用
.obj/debug-shared/qfontengine_x11.o:在函数“qt_x11ft_convert_pattern(_FcPattern*, QByteArray*, int*, bool*)”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:970:未定义对“FcPatternGetString”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:972:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:975:未定义对“FcPatternGetBool”的引用
.obj/debug-shared/qfontengine_x11.o:在函数“QFontEngineX11FT”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:999:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1016:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1041:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1077:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1106:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1112:未定义对“FcPatternGetCharSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1113:未定义对“FcCharSetCopy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1115:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:999:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1016:未定义对“FcPatternGetInteger”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1041:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1077:未定义对“FcPatternGetBool”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1106:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1112:未定义对“FcPatternGetCharSet”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1113:未定义对“FcCharSetCopy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:1115:未定义对“FcPatternDestroy”的引用
.obj/debug-shared/qfontengine_x11.o:在函数“engineForPattern”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:868:未定义对“FcFontMatch”的引用
.obj/debug-shared/qfontengine_x11.o:在函数“QFontEngineMultiFT::loadEngine(int)”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:929:未定义对“FcPatternEqual”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:932:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:941:未定义对“FcPatternDuplicate”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:951:未定义对“FcConfigSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:952:未定义对“FcDefaultSubstitute”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:956:未定义对“FcPatternDestroy”的引用
.obj/debug-shared/qfontengine_x11.o:在函数“~QFontEngineMultiFT”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:895:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:897:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:899:未定义对“FcFontSetDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:895:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:897:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:899:未定义对“FcFontSetDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:895:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:897:未定义对“FcPatternDestroy”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_x11.cpp:899:未定义对“FcFontSetDestroy”的引用
.obj/debug-shared/qfontengine_ft.o:在函数 `QFontEngineFT::stringToCMap(QChar const*, int, QGlyphLayout*, int*, QFlags) const'中:
/iTalk/QT4/qt/src/gui/text/qfontengine_ft.cpp:1546:未定义对“FcCharSetHasChar”的引用
/iTalk/QT4/qt/src/gui/text/qfontengine_ft.cpp:1581:未定义对“FcCharSetHasChar”的引用
.obj/debug-shared/qfontengine_ft.o:在函数“QFreetypeFace::release(QFontEngine::FaceId const&)”中:
/iTalk/QT4/qt/src/gui/text/qfontengine_ft.cpp:308:未定义对“FcCharSetDestroy”的引用
collect2: ld 返回 1 个退出状态
make[1]: *** [../../lib/libQtGui.so.4.5.3] 错误 1
make[1]: 离开目录`/iTalk/QT4/qt/src/gui'
make: *** [sub-gui-make_default-ordered] 错误 2

4

3 回答 3

4

您缺少对FontConfig的引用。

./configure需要一个-no-fontconfig开关,但最好弄清楚为什么./configure没有正确包含 FontConfig。(您发布的日志并没有回溯到足以找出失败的链接命令是什么。)

于 2009-10-20T15:11:39.313 回答
2

这看起来像是基于 Red Hat 的系统和他们使用的旧版本 FontConfig 上的已知问题。在http://theitdepartment.wordpress.com/2009/03/15/centos-qt-fcfreetypequeryface/上有解决问题的很好的说明。

于 2010-03-13T14:33:03.487 回答
1

问题是red hat提供的fontconfig版本太旧并且缺少符号(我读到它是子子版本号太低并且导致缺少符号)。如果您只是更新 fontconfig 它似乎对我不起作用,因为它仍然找到最旧的版本,但是当我更改 makefile 以直接链接到较新的 libfontconfig.so 时,它可以工作。在您的 .pro 文件中添加以下行: LIB+= /path/to/your/NewFontConfiglib.so.XX 另外,简单地进行 yum 更新不起作用,它说包是最新的,我读了一篇文章,显示了如何添加较新的。后来,我决定我需要独立构建我的应用程序,所以我开始构建 Qt 的静态版本并遇到了同样的问题.....虽然我不知道如何修改那个 makefile,但遇到了这篇文章,所以希望它将工作。CentOS 5.2 + Qt 4.5 + FcFreeTypeQueryFace

于 2010-03-19T20:39:39.923 回答