在Windows 7中设置MinGW以编译适当的可移植C ++代码

时间:2012-10-26 14:58:38

标签: windows compilation path mingw

前言:我已经完全放弃了在Visual Studio和Windows中编写和学习C / C ++的方式,以及编译和使用的方式。我非常喜欢使用vim和g ++的Ubuntu,但我想拥有一个基于Windows的良好工作环境。

问题:基本上我正在使用Notepad ++学习C ++,并将MinGW作为我的编译器。我很难找到最好的设置方法,以及编译代码所涉及的所有细节,以及它如何依赖于MinGW的dll文件。

似乎我必须在C:\ MinGW \ bin文件夹之外设置要编译的路径,但即使这样,我也被迫在同一个文件夹中执行该程序。否则我得到一个错误,我错过了一个DLL。

虽然这不仅是实际开发的麻烦(不要说转移到Linux,阅读预备面)但它阻止我的代码对其他Windows系统具有任何类型的可移植性。也许我缺乏有关如何正确创建可执行文件以及使用安装程序打包文件的知识。如果这就是我需要学习的东西,那么也许可以指出我正确的方向。

3 个答案:

答案 0 :(得分:2)

下载mingw的nuwen distribution。使用安装程序安装。这将创建一个名为open_distro_window.bat的文件(除其他外)。在桌面上创建一个快捷方式。双击它,它将打开一个窗口,其中设置了路径和其他环境变量,以便您可以编译,链接等(在您选择的任何目录中)。

为了让生活更轻松,一旦您创建了快捷方式,右键单击并编辑其属性 - 更改"开始"无论你在哪里保留你正在开发的项目的根目录。

答案 1 :(得分:2)

要使你的exe工作所需要做的就是将GCC DLL放在PATH中的某个位置(通过向PATH添加C:\MinGW\bin)或者编译所有代码以通过使用“静态链接到GCC运行时DLL” -static“作为链接器参数。分发可执行文件时,您需要确保libgcc * .dll和libstdc ++ - 6.dll都与可执行文件一起安装。 (如果您仍然在使用MinGW.org的工具链,那么可以选择MinGW-w64,没有mingwm10.dll或其他任何工具。)

GCC DLL与Visual Studio的C ++可再发行组件大致相同;要运行使用某个VS版本构建的代码,您需要DLL。静态链接是没有问题的唯一方法。

此外,获得像CMake这样的跨平台构建系统。它会让你的生活更轻松。

答案 2 :(得分:1)

您写道:I much prefer Ubuntu with vim and g++
我现在用了很长时间“msys / mingw”,很开心。

MSYS是 GNU实用程序的集合,例如 bash ,make,gawk和grep,以允许构建依赖于传统 UNIX工具<的应用程序和程序/ strong>出席。

它旨在补充MinGW和cmd shell的缺陷。Read more MSYS / minGW。将您的来源放在c:\msys\1.0\src文件夹中,它们放在右侧。

我很久以前用“cygwin”试过了。它总是存在一个或另一个问题。