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

From KDE TechBase
Revision as of 18:08, 13 July 2012 by AnneW (talk | contribs)


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这一部分是库构建和运行所必需的。