3

前言:我真的拒绝在 Visual Studios 和 Windows 中使用编译和使用东西的方式编写和学习 C/C++。我更喜欢带有 vim 和 g++ 的 Ubuntu,但除此之外,我还想拥有一个基于 Windows 的良好工作环境。

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

看来我必须设置路径才能在 C:\MinGW\bin 文件夹之外进行编译,但即便如此,我也不得不在同一个文件夹中执行程序。否则我会收到一个错误,我缺少一个 dll。

虽然这不仅给实际开发带来麻烦(不要说迁移到 Linux,请阅读前言),但它会阻止我的代码对其他 Windows 系统具有任何形式的可移植性。也许我缺乏关于如何正确创建可执行文件和使用安装程序打包文件的知识。如果这就是我需要学习的内容,那么也许可以为我指明正确的方向。

4

3 回答 3

2

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

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

于 2012-10-26T15:33:33.710 回答
2

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

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

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

于 2012-10-26T19:20:58.460 回答
1

你写道:I much prefer Ubuntu with vim and g++
我现在使用了很长时间的“msys / mingw”并且很高兴。

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

它旨在补充MinGW和cmd shell的不足。阅读更多 MSYS/minGW。将您的资源放在那里的c:\msys\1.0\src文件夹中,它们放在右边。

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

于 2012-10-26T18:10:05.043 回答