【问题标题】:CMake + Qt : define the moc/ui output directoryCMake + Qt : 定义 moc/ui 输出目录
【发布时间】:2011-08-11 22:19:21
【问题描述】:

我目前正在将使用 qmake 构建的项目转移到 CMake。

在带有qmake的版本中,在.pri文件中,有

MOC_DIR = .moc/$${PLATFORM_NAME}

允许在给定目录中生成 MOC 临时文件,保持源代码清洁。如何用 CMake 做同样的事情?

注意:在 CMake 中,我使用 FindQt4.cmake 包和命令 QT4_WRAP_CPP()

【问题讨论】:

标签: qt qt4 cmake moc


【解决方案1】:

正如baysmith 所说,如果您的目标是保持源目录干净,那么真正的解决方案是使用CMake 的"out-of-source" 构建功能。如果您使用的是 Windows,请将“构建二进制文件的位置”设置为新目录,与“源代码在哪里”目录不同。如果你在 Unix 上,它是这样的:

cd <source directory>
mkdir build
cd build
cmake ..
make

通过在不同的目录上运行 CMake,所有构建文件都将进入该目录,并且您的源代码将保持干净。 (注意:构建目录不必在源目录中。有关详细信息,请参阅CMake wiki。)

如果“源代码外”对您不起作用,我可以找到另一种选择。根据我从随 CMake 2.8 安装的 Qt4Macros.cmake 文件中得知的信息,它不能作为配置参数访问。这是相关的行:

SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})

解决方法是更改​​所有 MOC 包含指令以指定要构建到的子文件夹。

#include "moc/mainwindow.moc"

在我的构建目录中创建moc 目录后,构建没有问题,我的MOC文件在新目录中。

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 2012-01-29
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多