Archive:Getting Started/Build/KDE4/FreeBSD (zh CN)

From KDE TechBase
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Tip
Note: This page is about KDE 4. It isn't applicable for KDE 3 development.

所需移植

  • devel/dbus (version 1.0.2,4月19日的版本就可以)
  • devel/cmake (version 2.4p6,4月19日的版本就可以)
  • devel/subversion
  • x11/xorg
  • misc/shared-mime-info (kdelibs)
  • graphics/libungif (kdelibs)
  • devel/boost (kdepimlibs)
  • security/gpgme (kdepimlibs)
  • multimedia/libxine (kdebase)
  • 如有需要请添加,这里是wiki :)

和一般构建过程的不同之处

构建KDE4中对你的环境做了一些假设。这里要说明的是FreeBSD下的dbus和cmake的ports都可以工作(所以这些部分可以跳过)。(译者注:也就是说你直接从ports安装cmake就可以了。)

使用kdesvn-build

kdesvn-build脚本通过修改一个地方就可以直接在FreeBSD上使用。qt-copy的构建会在编译dbus支持时失败,失败原因会在下面介绍,所以,你可以运行“kdesvn-build qt-copy”一次……应用以下的修改,然后运行“kdesvn-build”。或者,在你的.kdesvn-buildrc里的qt-copy一节的configure-flags中添加“-lpthread”。

编译qt-copy的错误

就算按我说得这么做,qt-copy其实并没有将dbus的支持编译进去。(译者注:FreeBSD默认情况下不编译qt-copy的dbus支持)

这是因为FreeBSD中libdbus有pthreads的依赖关系,当编译qt-copy中的dbus测试程序就会无法正确链接而出错。要修正这个问题:进入(builddir)/qt-copy/config.tests/unix/dbus。然后手工运行

g++ dbus.o -lpthread -ldbus-1 -L/usr/local/lib -o dbus

这样就会生成“dbus”文件,你现在应该可以从你停下的地方继续构建qt了,这回可以编译dbus。

编译kdelibs的错误

kdelibs将无法编译,它会抱怨找不到qdbus

请阅读上面关于dbus没有被编译的问题(就算你告诉它去编译了)。如果Qt没有找到dbus库,编译过程不会报错,而是继续在没有dbus支持的情况下进行构建。

编译kdesupport的错误

就目前来说,Strigi是构建kdelibs所必须的包。到现在为止(4月5号),在iconv.h文件不在/usr/include下的系统中编译kdesupport/strigi/src/streams/tests/InputStreamReaderTest.cpp会有问题发生。使用“VERBOSE=1 make”查看错误输出,然后运行它,把“-I/usr/local/include”添加到一个-I的大的目录列表中(你可能还需要修改一些路径……请确认这些路径的位置都是正确的!)。从这里开始, 剩下的编译应该都很顺利。

要说明的是kdesupport的一些部分现在可能还不能在FreeBSD上编译,不过实际上只有kdesupport/strigi这一部分是库构建和运行所必需的。