【问题标题】:How can I compile using g++ in a 32 bit operating system如何在 32 位操作系统中使用 g++ 进行编译
【发布时间】:2021-04-26 11:55:46
【问题描述】:

我是 c++ 新手,我在 windows 7 32 位操作系统中使用 g++ 10.2.0。我从http://winlibs.com/ 得到了这个 g++,我下载了它并将它添加到我的 Codeblocks IDE 中。这个网站说我必须在我的编译器中输入i686-w64-mingw32-g++.exe,因为我使用的是 32 位操作系统。这意味着它是 32 位操作系统的编译器。但是,当我想使用windows command prompt 进行编译并且使用g++ -o prog1 prog1.cc 在目录中编译名为 prog1 的文件时,它会编译该文件。所以,我的问题是,我不应该把 i686-w64-mingw32-g++.exe 因为它是我的 32 位编译器吗?为什么g++ -o prog1 prog1.cc 在我的软件中工作?

【问题讨论】:

  • g++ --version 打印什么?
  • 它打印 10.2.0 并且在此之前有一些文本。
  • 使用 cmake 进行构建,我可以推荐在 windows 上使用 MSVC,在 linux 上使用 gcc,在 mac 上使用 clang。我不能推荐 mingw。
  • 我在stackoverflow.com/questions/46324337/… 发现了一个类似的问题,但我不明白他们的意思。那么,有人能解释一下这是什么意思吗?

标签: c++ mingw mingw-w64 mingw32


【解决方案1】:

如果您从 http://winlibs.com/ 下载了 32 位 MinGW-w64 GCC,那么 i686-w64-mingw32-g++.exeg++.exe 是一回事。 GCC 有一个约定,目标编译器的全名是 TARGET+-g++.exe,因此不同目标的编译器可以共存。但是这里的本地平台是目标,所以g++.exei686-w64-mingw32-g++.exe 是同一个编译器。

所以运行i686-w64-mingw32-g++.exe -o prog1 prog1.cc 会得到相同的结果。

确保在 Code::Blocks 中也将“编译器的安装目录”设置为包含 i686-w64-mingw32-g++.exe 的文件夹,否则 Code::Blocks 将不知道在哪里找到该文件。

【讨论】:

    猜你喜欢
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2011-07-06
    • 2013-10-31
    相关资源
    最近更新 更多