我正在尝试将我的项目从 VS2005 构建系统移动到 Qt Creator。
我们已经设置了 Visual Studio 以将 moc 用于某些标头并输出具有相同文件名的 .moc 文件。
例如:
MyClass.h我的班级.moc
当 QtCreator 运行 qmake 并运行 moc 时,它会生成一个 cpp 文件,文件名前面带有 moc_
例如:MyClass.h
moc_MyClass.cpp
我找到了更改moc 输出文件位置的选项,但现在如何更改实际输出文件名。在我们的视觉工作室文件中,我们基本上有
-o $(InputName).moc
在 Qt Creator 中是否有等效的方法来执行此操作?我猜这是我放在 .pro 文件中的东西。
编辑:我在我的问题上取得了一些进展。
我在这里和这里找到了一些关于如何拥有自定义编译器和目标的文档。
我已经设置了我的“新 moc”工具以在与标题相同的目录中输出 moc 文件并将它们命名为 .moc 文件。
new_moc.output = ${QMAKE_FILE_BASE}.moc
new_moc.commands = moc ${QMAKE_FILE_NAME} -o
${QMAKE_FILE_IN_PATH}/${QMAKE_FILE_OUT}
new_moc.input = NEW_HEADERS
new_moc_echo.commands = @echo Moccing $$new_moc.target
QMAKE_EXTRA_COMPILERS += new_moc
QMAKE_EXTRA_TARGETS += new_moc_echo
它在正确的位置构建 moc 文件,但是,现在我的项目出现链接器错误。
MyFile.moc : fatal error LNK1107: invalid or corrupt file: cannot read at 0xA02
我猜我的 moc 构建工具缺少一些东西。