Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt qmake项目中的CMake项目_Qt_Cmake_Qmake - Fatal编程技术网

Qt qmake项目中的CMake项目

Qt qmake项目中的CMake项目,qt,cmake,qmake,Qt,Cmake,Qmake,长话短说,我们有一个Qt项目,我正在考虑迁移到CMake。但是,我们的一些客户将现有库用作Qt subdirs项目中的子项目。这是否意味着我们在构建系统时必须使用Qt?这是可能的,但很难看。例如,您可以在qmake文件中使用system()函数: 您可以使用系统函数的此变量从命令中获取stdout并将其分配给变量 例如: UNAME=$$系统(UNAME-s) 包含(UNAME,[lL]inux):消息(对我来说这看起来像Linux($$UNAME) 正如在评论中所讨论的,您的回退选项将是为您

长话短说,我们有一个Qt项目,我正在考虑迁移到CMake。但是,我们的一些客户将现有库用作Qt subdirs项目中的子项目。这是否意味着我们在构建系统时必须使用Qt?

这是可能的,但很难看。例如,您可以在qmake文件中使用system()函数:

您可以使用系统函数的此变量从命令中获取stdout并将其分配给变量

例如:

UNAME=$$系统(UNAME-s) 包含(UNAME,[lL]inux):消息(对我来说这看起来像Linux($$UNAME)

正如在评论中所讨论的,您的回退选项将是为您的项目维护这两个方面,并为您的客户提供合理的qmake通知期,以便他们有足够的时间进行迁移(如果他们愿意)


否则,使用system()函数运行所需的cmake和build命令至少还有一条路要走。

“在Qt细分项目中”->我假设您指的是qmake。如果没有,请澄清。我相信,你可以解决它,但它会很难看。为什么现在不同时支持这两个版本,并淘汰qmake变体,为客户提供合理的切换时间?他们会接受这种方法吗?是的,那是我的备份选项…:)它回答了你的担忧吗?不完全是。QT Creator支持CMake和QMake项目。但是,使用下面的方法,您无法在不同的项目之间链接(除了许多难看的手工缝合)。据我所知,你被其中一个困住了。