Archive:Getting Started/Build/KDE4/FreeBSD (zh CN)
所需移植
- 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这一部分是库构建和运行所必需的。