问题标签 [mingw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
15143 浏览

c++ - C++ 标准库如何链接到我的应用程序?

当我通常使用来自第 3 方(非标准)C++ 库的代码(包括头文件)时,预构建的二进制文件会链接到(或包含在)代表我的应用程序的目标可执行文件,但是 C++ 标准库会发生什么? ,据我所见,我不必将库与仅使用来自 C++ 标准库的代码的应用程序一起发布,因此代码是否静态链接并包含在可执行文件中?

0 投票
2 回答
1316 浏览

c++ - 在 Qt 项目中将 CMake 与 Gnu 一起使用时包含问题

我正在启动一个多平台(Win Xp、Linux)qt 项目。我想使用源外构建,所以我的目录结构如下:

因此,当我在 Windows 上使用 Visual Studio 生成器时,一切正常。如果我在 Linux 或 Windows 下使用 MinGW 生成器使用相同的结构和 CMakeLists,则会出现编译错误,因为构建目录下的 qt 生成文件(通过 moc 和 uic)无法在我的子项目中找到我的头文件。一些 qt 生成的头文件/源文件依赖于我的头文件/源文件,因为我在 .ui 文件中使用提升的小部件,这些小部件指向我的源代码中的实现。再次在 Visual Studio / NMake 下一切编译正常。

作为一种解决方法,我可以使用运行良好的源代码构建,或者我可以在全局 CMakeLists.txt 中添加以下内容:

但是什么是正确的解决方案?非常感谢你!!

0 投票
4 回答
5195 浏览

linker - MinGW 链接器找不到 MPICH2 库

MPICH2 安装在 C:\Program Files\MPICH2 中。有两个子目录(感兴趣的),\include一个包含 .h 文件,\lib另一个包含 .lib 文件。

MPICH2 附带的自述文件有以下说明:

  1. 创建一个生成文件
  2. 添加–I...mpich2\include
  3. 添加–L...mpich2\lib
  4. 添加–lmpi
  5. 为您的源文件添加规则
  6. 编译

由于我的项目中没有其他规则,所以我没有创建makefile,我只是进入命令行并尝试像这样编译:

undefined reference这给了我代码中每个 MPI 符号的一大堆错误。我花了几个小时试图修复它,杂耍-I-L切换-l,打乱参数的顺序,甚至将所有 .lib 文件复制到与我的源相同的目录中,但似乎没有任何效果。

需要什么样的巫术才能让这个东西链接起来?


编辑:我想我发现了问题:这是链接器在详细模式下输出的摘录(添加-Wl,--verbose到编译命令):

显然,链接器将 a/而不是 a添加\到我提供给它的目录名称中(lib___.a由于某种原因查找格式时除外),这显然不是有效路径。有没有办法告诉链接器使用反斜杠而不是斜杠?

这也引起了我的注意:

所以我尝试像这样编译:

但我仍然得到同样的undefined reference错误。

0 投票
3 回答
4550 浏览

windows - 适用于 Windows 的 mingw32 Ruby 安装程序

新的适用于 Windows 的 Ruby 安装程序有多好?

我之前问过为什么 Ruby在 Windows 上这么慢,现在我看到一些令人印象深刻的基准测试显示在新安装程序中使用的 minGW 编译显着提高了速度,我很好奇它对尝试过的人是如何工作的?

这个版本破坏了多少宝石?有什么大的你被咬过的不在这个名单上吗?

0 投票
3 回答
2486 浏览

c++ - 从 MinGW 程序调用 Postgres 的最简单方法是什么?

我所需要的只是让 MinGW 与 Postgres 交谈。我考虑了几个选项:

  1. 使用 libpq。Postgres for Windows 附带的 libpq.lib 链接正常,但在我使用该库时崩溃。我想是因为它是为 VC++ 编译的。我找不到 libpq 代码,所以我必须在 MinGW 中重新编译整个 Postgres 树。不容易。
  2. 使用 libpqxx。需要libpq!
  3. 使用 libodbcxx。需要某种 ODBC 管理器,例如 iodbc。也许我可以直接使用iodbc。由于现在这只是 Windows,我可以在链接器上使用 -lodbc 并使用一些特定于 Windows 的命令吗?

选项 1 听起来最不痛苦。我很确定该项目将使用 Postgres,但不太确定该项目是否会保留在 Windows 上。有没有一种简单的方法来获得这个功能?

0 投票
3 回答
3472 浏览

c++ - mingw 中 UTF-8 的 C++ ctype facet

在一个项目中,所有内部字符串都保存在 utf-8 编码中。该项目已移植到 Linux 和 Windows。现在需要一个 to_lower 功能。

在 POSIX 操作系统上,我可以使用 std::ctype_byname("ru_RU.UTF-8")。但是对于 g++(Debian 4.3.4-1), ctype::tolower() 不能识别俄语 UTF-8 字符(拉丁文本小写很好)。

在 Windows 上,当我尝试使用“ru_RU.UTF-8”参数构造 std::ctype_byname 时,mingw 的标准库抛出异常“std::runtime_error: locale::facet::_S_create_c_locale name not valid”。

如何在 Windows 上为 utf-8 实现/查找 std::ctype?该项目已经依赖于 libiconv(codecvt facet 基于它),但我没有看到用它实现 to_lower 的明显方法。

0 投票
1 回答
1103 浏览

c++ - 无法在 MinGW 中链接 libpqxx

使用 MSYS,我编译了 libpq(来自编译 postgres)。然后我编译了 libpqxx。现在,我想创建一个使用 libpqxx 的客户端。libpq 似乎工作正常。而且,我可以用 libpqxx 编译代码。但是,链接 libpq 客户端应用程序失败。

这是我的代码:

我徒劳地在链接中添加了一堆库,希望它会突然起作用。这是我到目前为止所拥有的:

我在想 -lws2_32 应该给了我“select@20”。为什么链接器如此自大?

0 投票
3 回答
233 浏览

windows-xp - 为什么我基于 GTK+ 的简单应用需要 8 秒才能启动?

我编写了一个 GTK+ 应用程序,其 .exe 很小,但当然像所有 GTK+ 应用程序一样,它与许多 DLL 链接(在 Windows 下)。我的程序此时所做的是构建一个由 GtkWindow、GtkTable 和大约 12 个其他小部件组成的 GUI。而已。

然而,当我启动它时,在我的 2 GHz WinXP 机器上大约需要 8 秒。

GTK+ 是否过于臃肿?

我可能会补充一点,在开始尝试 GTK+ 之前,我开始开发自己的小部件集(而不是付费使用 MFC),它基本上不会对我的程序启动增加任何延迟。

0 投票
1 回答
4110 浏览

mingw - MSYS 中缺少 mkdir

为什么我会在 MSYS 中得到这个?

cd 和 pwd 等基本命令可以正常工作。mkdir怎么了?

0 投票
2 回答
2320 浏览

open-source - mingw32-make:“输入行太长”问题

我们有一个在 Windows 2003 机器上运行的 Makefile,我们正在使用 mingw32-make。由于 Makefile 有许多包含路径,它超过了 cmd 可以处理的 8K 缓冲区大小 [Ref - http://support.microsoft.com/kb/830473/EN-US/由于编译结果为“输入行太长”的问题。

我想知道以下内容 -

  1. 什么是优化 Makefile 的最佳方法,因为我已经删除了不需要的编译器开关、包含路径等。

  2. 有什么方法可以将所有 INCLUDE 路径放在一个 .txt 文件中并将其导入 Makefile。我找不到任何 mingw32 文档。

欢迎任何其他输入/提示/参考链接

谢谢,
-HJSblogger