【问题标题】:Moving away from DevC++ to command line compiling从 DevC++ 转向命令行编译
【发布时间】:2018-02-28 16:53:51
【问题描述】:

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

我正在尝试使这个过程在某种程度上自动化,以使在新机器上推出实施更简单,并确保在任何给定机器上快速运行最新的二进制文件。但是,我对在 Windows 环境中部署软件一无所知(我习惯于在 Linux 系统上工作,一个简单的 makefile 就足够了)哪些工具(最好是命令行)可用于以可移植方式编译和组织二进制文件在 Windows 系统上?

【问题讨论】:

  • AFAIK DevC++ 是 IDE,而不是编译器。
  • 抱歉,我指的是 MinGW。我得到的是,当前的编译和部署过程是有人手动编译IDE中的所有二进制文件,然后分发它们;因此,当对源代码进行更新时,有人的工作就是检查实验室中的每台计算机并在 IDE 中重新编译每个部分并用新的二进制文件替换二进制文件。

标签: c++ windows compilation


【解决方案1】:

假设你有一个 C++ 编译器可以在命令行上使用,在一个翻译单元上。例如,GCC 就是这样一个编译器(而mingw 是或包含 GCC 的变体)。还假设它能够链接(例如通过驱动系统linker)。

那么你需要使用一些build automation工具来驱动这样的编译命令。例如GNU makeninja(但还有很多其他的)。 AFAIK 它们存在于 Windows 上(因此您可以将 Linux 上的 Makefile 移植到 Windows)。

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

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

顺便说一句,DevC++ 是 IDE,而不是编译器。

【讨论】:

  • Ninja 构建文件不是为直接编写而设计的,它们旨在由另一个构建系统(例如 CMake)生成
  • +1 用于 CMake。在 Windows 上,您可以使用它来生成 Visual Studio 项目文件,我假设 Visual Studio 文档有通过 cli 构建的步骤。
  • 谢谢@SeanBurton。我将看一下 Cmake 文档;我已经很久没有使用它了,但我认为这可能是我最好的选择。
猜你喜欢
  • 2013-07-30
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多