Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
C++ CMake的替代品_C++_Visual Studio_Cmake - Fatal编程技术网

C++ CMake的替代品

C++ CMake的替代品,c++,visual-studio,cmake,C++,Visual Studio,Cmake,在将文件提交给编译器之前,我在VisualStudio中使用CMake生成规则对文件进行预处理,但我的客户不喜欢这样做 是否有任何CMake替代方案或方法来预处理我的文件并将其集成到visual studio中?据我所知,您正在使用CMake生成手动创建的VS项目所使用的文件。无论出于何种原因,VS项目的客户都不喜欢CMake。您可能已经通过创建调用CMake的自定义生成步骤来实现这一点,以生成项目中的文件,或者作为项目中的生成事件,或者作为项目中各种文件(例如脚本的输入)的自定义生成步骤 VS

在将文件提交给编译器之前,我在VisualStudio中使用CMake生成规则对文件进行预处理,但我的客户不喜欢这样做


是否有任何CMake替代方案或方法来预处理我的文件并将其集成到visual studio中?

据我所知,您正在使用CMake生成手动创建的VS项目所使用的文件。无论出于何种原因,VS项目的客户都不喜欢CMake。您可能已经通过创建调用CMake的自定义生成步骤来实现这一点,以生成项目中的文件,或者作为项目中的生成事件,或者作为项目中各种文件(例如脚本的输入)的自定义生成步骤

VS允许您在生成事件或自定义生成步骤中运行任意命令集。因此,您可以使用自己编写的合适脚本或自定义可执行文件替换CMake。如果不确切知道CMake对您的客户没有吸引力,很难具体说明


您可以通过Windows脚本主机使用JavaScript创建处理自定义构建步骤的相当复杂的脚本。他们可以接受命令行参数、访问文件系统等。出于某种原因,WSH JavaScript在大多数开发人员中是一个大秘密,他们认为在Windows开箱即用的环境中,他们可以使用的只有DOS批处理文件和power shell脚本。JavaScript作为操作系统的一部分已经发布了10多年,您可以在Visual Studio的脚本调试器中调试脚本,这非常好。

我不太明白,为什么客户不喜欢cmake的想法。它会创建依赖于平台的文件(make/sln/.project),但允许您独立于平台将其写入。因此,我不太关心这个问题,因为答案很可能取决于平台(即仅向客户提供visual studio sln),我将向您的客户解释使用cmake的好处,而不仅仅是visual studio提供的好处。而且这些好处超过了学习如何使用CMake和为每个目标创建一个CMakeLists.txt文件的额外步骤的成本。为什么不直接将CMake生成的文件发送给您的客户呢?这样他们就不必使用CMake,但你可以。我不知道这个具体情况,但手工维护的Visual Studio项目(或Xcode项目)和自动生成的项目之间的可用性差异可能很大。@JohnZwinck。因为CMake生成的文件很可能使用到第三方库的固定绝对路径,并且不会在客户端的开发机器上工作。此外,CMake生成的文件仍然需要CMake。