USE_QT_VER | 表示 port 用到了 Qt 工具套件。
可用的值包括 3 和 4 ;
用于指定使用的 Qt 的主版本。 此外, 系统会自动为 configure
脚本和 make 命令提供必要的参数。 |
QT_PREFIX | 这个变量会自动设为 Qt 的安装路径 (只读变量)。 |
MOC | 这个变量会自动设为 moc 的路径
(只读变量)。 默认值与
USE_QT_VER 变量的值有关。 |
QTCPPFLAGS | 通过
CONFIGURE_ENV 传给 Qt 工具套件的编译参数。
默认配置与
USE_QT_VER 有关。 |
QTCFGLIBS | 通过
CONFIGURE_ENV 传给 Qt 工具套件的连接库。
默认配置与
USE_QT_VER 有关。 |
QTNONSTANDARD | 禁止系统自动修改
CONFIGURE_ENV 、
CONFIGURE_ARGS 和
MAKE_ENV 。 |
QT_COMPONENTS | 用于指定 Qt4 工具和函数库的依赖。 详情见后。 |
UIC | 这个变量会自动设为 uic 的路径 (只读变量)。
默认值与
USE_QT_VER 有关。 |
QMAKE | 这个变量会自动设为 qmake 的路径
(只读变量)。 其默认值与
USE_QT_VER 有关。 |
QMAKESPEC | 这个变量会自动设为
qmake 配置文件的路径 (只读变量)。
其默认值与 USE_QT_VER
有关。 |
当设置了 USE_QT_VER
时,
系统自动会给 configure
脚本传一系列有用的参数:
如果将 USE_QT_VER
设为 4
,
则还会进行下列配置:
当把 USE_QT_VER
设为 4 时, 就可以通过
QT_COMPONENTS
变量来指定对
Qt4 工具和函数库的依赖了。 通过在组件的名称后面添加 _build
或 _run
这样的后缀, 则可相应地将这依赖关系限于联编或运行时刻。
在没有指定后缀时, 系统默认在联编和运行时刻均依赖该组件。
通常情况下在指明函数库一类的组件时应不使用后缀,
联编工具类组件应使用 _build
后缀,
而插件类组件, 则应使用 _run
后缀。
下表中列出了一些最常用的组件 (全部可用的组件, 则在
/usr/ports/Mk/bsd.qt.mk
中的 _QT_COMPONENTS_ALL
列出):
名字 | 描述 |
---|---|
corelib | 核心库 (在 port 只使用 corelib 而没有用到其他库时可以省略) |
gui | 图形用户界面库 |
network | 网络函数库 |
opengl | OpenGL 函数库 |
qt3support | Qt3 兼容支持函数库 |
qtestlib | 单元测试函数库 |
script | 脚本函数库 |
sql | SQL 函数库 |
xml | XML 函数库 |
您可以通过在成功编译之后, 通过在主可执行文件上运行
ldd
来确定所需的库。
名字 | 描述 |
---|---|
moc | 元对象编译器 (几乎所有的 Qt 应用程序在联编过程中都需要它) |
qmake | Makefile 生成器 / 联编工具 |
rcc | 资源编译器 (如果应用程序中包含
*.rc 或 *.qrc
文件, 就需要它) |
uic | 用户界面编译器 (如果应用程序中包含使用 Qt Designer
创建的 *.ui 文件时就需要它
- 一般说来 Qt 应用程序都会使用 GUI 的) |
名字 | 描述 |
---|---|
iconengines | SVG 图标引擎插件 (如果应用程序使用 SVG 图标) |
imageformats | 用于 GIF、 JPEG、 MNG 和 SVG 的 imageformat 插件 (如果应用程序使用图片文件) |
在这个例子中, 我们将要移植的应用程序用到了
Qt4 图形用户界面函数库、 Qt4 核心 (core) 函数库、
所有 Qt4 代码生成工具以及 Qt4 的
Makefile 生成器。 由于 gui 函数库会自动附带对核心函数库的依赖,
因此并不需要明确指出需要 corelib 的依赖关系。 Qt4 代码生成工具 moc、
uic 和 rcc 以及 Makefile 生成器
qmake 只在联编过程中才会用到,
因此可以指定 _build
后缀:
如果应用程序没有提供
configure
文件, 而是给了一个 .pro
文件, 则应这样:
请注意, 这与系统提供的 BUILD.sh
中的 qmake
类似。 传递
CONFIGURE_ENV
能够确保 qmake
可以看到 QMAKESPEC
变量,
否则它可能无法正常工作。 qmake
会生成标准的
Makefile, 因此无需自行编写
build
target。
Qt 应用程序通常会编写为能够跨平台使用, 通常 X11/Unix 并不是开发它的平台, 有时这会导致一些边边角角的问题, 例如:
缺少必要的 includepaths。
许多应用程序会使用托盘图标支持, 但忽略了这些头或库文件需要在 X11
目录中查找。 您可以通过命令行告诉 qmake
将这些头文件和函数库加入到搜索路径中, 例如:
有问题的安装路径。
有时, 类似图标或 .desktop 文件这样的一些数据, 默认情况下没有安装到
XDG-兼容的程序会扫描的路径中。 editors/texmaker
就是一个这样的例子 - 请参考这个 port 的 files
目录中的 patch-texmaker.pro
,
以了解如何在 Qmake 工程文件中修正这个问题。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.