离开DevC++;命令行编译 我继承了大量的C++代码,用于运行和监控实验室设备。目前,通过使用DevC++编译所有单独的模块(每个模块都有自己的程序),手动将所有.exe文件移动到Dropbox文件夹,然后在主机上手动运行它们来管理部署

离开DevC++;命令行编译 我继承了大量的C++代码,用于运行和监控实验室设备。目前,通过使用DevC++编译所有单独的模块(每个模块都有自己的程序),手动将所有.exe文件移动到Dropbox文件夹,然后在主机上手动运行它们来管理部署,c++,windows,compilation,C++,Windows,Compilation,我试图在某种程度上自动化这个过程,以简化在新机器上的实现,并确保在任何给定机器上快速运行的是最新的二进制文件。但是,我不知道在Windows环境中部署软件(我习惯于在Linux系统上使用简单的MaX文件就足够了)在Windows系统上,什么工具(最好是命令行)可以以可移植的方式编译和组织二进制文件?< /P> < P>假设您在命令行上有一个C++编译器,在一个翻译单元上。例如,是这样一个编译器(并且是或包含GCC的变体)。还假设它能够链接(例如,通过驱动系统) 然后需要使用一些工具来驱动这些编译

我试图在某种程度上自动化这个过程,以简化在新机器上的实现,并确保在任何给定机器上快速运行的是最新的二进制文件。但是,我不知道在Windows环境中部署软件(我习惯于在Linux系统上使用简单的MaX文件就足够了)在Windows系统上,什么工具(最好是命令行)可以以可移植的方式编译和组织二进制文件?< /P> < P>假设您在命令行上有一个C++编译器,在一个翻译单元上。例如,是这样一个编译器(并且是或包含GCC的变体)。还假设它能够链接(例如,通过驱动系统)

然后需要使用一些工具来驱动这些编译命令。例如或(但还有许多其他的)。假设它们存在于Windows上(因此您可以将Linux上的
Makefile
移植到Windows)

一旦您选择了构建自动化工具,研究了它的文档并了解了如何使用它,您将为它编写相关的配置文件。对于
make
,您将编写一个
Makefile
(注意:制表符很重要)。对于
ninja
,您将编写一些
build.ninja
文件(但您可能会生成它,可能是使用)

请注意,一些构建工具(例如)是跨平台的


BTW,是IDE,不是编译器。

< P>假定在一个翻译单元上有一个C++编译器可用在命令行上。例如,是这样一个编译器(并且是或包含GCC的变体)。还假设它能够链接(例如,通过驱动系统)

然后需要使用一些工具来驱动这些编译命令。例如或(但还有许多其他的)。假设它们存在于Windows上(因此您可以将Linux上的
Makefile
移植到Windows)

一旦您选择了构建自动化工具,研究了它的文档并了解了如何使用它,您将为它编写相关的配置文件。对于
make
,您将编写一个
Makefile
(注意:制表符很重要)。对于
ninja
,您将编写一些
build.ninja
文件(但您可能会生成它,可能是使用)

请注意,一些构建工具(例如)是跨平台的


顺便说一句,它是一个IDE,不是一个编译器。

AFAIK DevC++是一个IDE,不是一个编译器。抱歉,我指的是MinGW。我的意思是,当前的编译和部署过程是,有人手工分别编译IDE中的所有二进制文件,然后分发它们;因此,当对源代码进行更新时,有人负责检查实验室中的每台计算机,并在IDE中重新编译每一部分,并用新的二进制文件替换二进制文件。AFAIK DevC++是一个IDE,而不是一个编译器。抱歉,我指的是MinGW。我的意思是,当前的编译和部署过程是,有人手工分别编译IDE中的所有二进制文件,然后分发它们;因此,当对源代码进行更新时,有人的工作是检查实验室中的每台计算机,在IDE中重新编译每一部分,并用新的二进制文件替换二进制文件。Ninja构建文件不是直接编写的,它们是由另一个构建系统(如CMake)+1为CMake生成的。在windows上,您可以使用它生成Visual Studio项目文件,我假设Visual Studio文档有通过cli生成的步骤。谢谢@SeanBurton。我来看看Cmake文档;我已经很久没有使用它了,但我认为这可能是我最好的选择。忍者构建文件不是直接编写的,它们是由另一个构建系统生成的(比如CMake)+1用于CMake。在windows上,您可以使用它生成Visual Studio项目文件,我假设Visual Studio文档有通过cli生成的步骤。谢谢@SeanBurton。我来看看Cmake文档;我已经很久没有用过它了,但我认为这可能是我最好的选择。