问题标签 [mingw-w64]
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.
cross-compiling - 交叉编译 gettext 期间出现“未定义的对 '_rpl_*' 的引用”错误
我进入了交叉编译的勇敢世界。我目前正在尝试gettext 0.18.2
在 Ubuntu 12.04 上使用 Mingw-w64 进行编译。下面是配置命令的样子:
在配置脚本的(相当长的)调用中需要注意一些事项:
gettext
requiresgnulib-tool
,它存储在gnulib
源代码树上一层的目录中。由于某些奇怪的原因,配置脚本找不到 Mingw-w64 的 C++ 编译器,所以我明确提供了它。
configure 脚本
iconv
通过实际编译一个简单的示例并尝试运行它来确定是否已安装并正常工作。这显然不起作用,因为目标可执行文件不会在 Ubuntu 上运行。所以我手动通知配置脚本 iconv 已安装并且可以工作。
配置运行后,我执行make
,运行了很长时间并在链接阶段失败:
什么可能导致这些错误?
编辑:我通过将以下环境变量添加到configure
:
现在我得到:
winapi - Mingw32 和 Mingw64 包含文件有什么区别?
我使用 Mingw32 和 devc++ IDE 来开发我的应用程序。我包含了Mingw32的lib文件和包含文件并编译了我的应用程序。
我的应用程序应该在 32 位和 64 位版本的 Windows 中运行。我的疑问是我的应用程序是否在 Windows 64 位系统中运行?就算完美运行会不会有什么问题?
Mingw32 和 Mingw64 包含文件有什么区别?我的最终目标是在 32 位和 64 位窗口中运行我的应用程序。我应该添加和编译哪些包含文件?
python - Python - 无法构建 PyCPUID
我花了很多时间尝试构建PyCPUID
我在使用 Python 2.7 64 位的 Windows 7 64 位上。我已经安装了 cygwin,所以我可以尝试使用这个命令进行构建
这导致
是的,我正在使用管理员权限运行。(mingw32 也是 32 位编译器吗?)我也尝试从 cygwin 终端运行它。
我知道 c:\cygwin\bin\gcc.exe 是符号链接或其他东西在 Windows 上的一些问题,所以我将 gcc-3.exe 重命名为 gcc,这让我更进一步,但那失败了
而我现在完全不知所措。有任何想法吗?
c++ - mingw-w64-v2.0.6.tar.gz - 定义环境变量路径
我下载了最新版本的 minGW - mingw-w64-v2.0.6.tar.gz 。然后我提取到C:\MinGW
. 正如我在一些文章中看到的,现在我必须定义path
环境变量。现在 C:\MinGW
有 -
我试图将路径的变量值设置为C:\MinGW
,但是当我在 Eclipse Juno 中为某些项目构建路径时,我得到 -
编辑:
我下载了 GCC+binutils 64 位,提取到c:\mingw64
,更改路径c:\mingw64\bin
并将构建命令更改为mingw32-make
. 现在,当我构建项目时出现错误 -
第二次编辑:
最后我通过选择成功运行了一个项目 -
请注意,它必须取消选中show project type and toolchians only if they are supported on the platform
否则不允许选择Executable Project type 。此外,构建命令应保持在“使用默认构建命令”上。
c - mingw w64 labview构建错误
在过去的两天里,我一直试图让它工作,但不能。也许有人可以帮助我。让我先解释一下我的设置;
视窗 7 64 位
nidaqmx 9.1.7
明格 64 位
网豆 7.1.2
我创建了一个 def 文件(来自 C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\lib64\msvc\nidaqmx.lib)。虽然 def 文件中没有 @ 符号。这是对的吗?
然后我运行 dlltool 并创建了我在链接器中使用的 libnidaq.a 文件。
一切正常。问题是当我尝试构建时出现以下错误:
我很确定一切都是 64 位的,所以我不知道这个错误来自哪里。
任何帮助将不胜感激。
mingw-w64 - 与 MinGW-64 的静态链接
我正在尝试使用来自http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/的 64 位 MinGW,但是当我用它编译程序时,生成的可执行文件当 DLL 不可用时失败。
如何让这个编译器与标准库进行静态链接?
还是我应该使用另一种 64 位 MinGW 发行版?
regex - 从多个表达式输出的 sed 解释器中的不可预测的行为
为什么 GNU sed 有时处理用管道输出到另一个 sed 实例的替换与使用多个表达式时不同?
具体来说,对于 msys/mingw 会话,在 /etc/profile 脚本中,我进行了一系列“重新排列”环境变量 PATH 的顺序并删除重复条目的操作。
请注意,虽然通常 sed 会单独处理每一行输入(因此不能轻易地在输入流中替换 '\n',但此 sed 语句将 ':' 替换为 '\n',因此它仍然处理整个输入流就像一行(其中包含 '\n' 字符)。对于同一 sed 实例中的所有 sed 表达式,此行为保持正确(基本上直到您将输出重定向或通过管道传输到另一个程序)。
这是强制性规格:
这是 PATH 操作前的内容:
这是 /etc/profile 的摘录(我已经开始 PATH 操作):
该行中的最后一个 sed 表达式基本上查找以“/c/VS10/VC/bin”开头的行,并在它们前面加上“A40-”,如下所示:
我喜欢我的 sed 表达式灵活(路径结构发生变化),但我不希望它与以 amd64 或 x86_amd64 结尾的行匹配(这些行前面将有不同的字符串)。所以我将最后一个表达式更改为:
这有效:
然后,(为了匹配与伪代码 "/x/.../bin" 匹配的任何“行”)我将最后一个表达式更改为:
产生:
???- sed 没有匹配任何字符 ('.') 任意次数 ('*')在行的中间 ???
但是,如果我将输出通过管道传输到不同的 sed 实例(并补偿 sed 分别处理每个“行”),如下所示:
我得到:
???那怎么没完没了? 它在 s 之后有所有三个 '#' 字符,在第三个 '#' 之后有修饰符 'i' 和 'g',整个表达式用双引号 ('"')。此外,没有转义 ( '\') 紧接在定界符之前,并且定界符不是搜索或替换的一部分。让我们尝试使用与 '#' 不同的定界符,例如 '~':
我使用:| sed -e "s~^(/[az]/.*/bin)$~A40-\1~ig"
而且,我得到:
而且,这是正确的!我唯一改变的是从'#'到'~'的分隔符,它起作用了???
这不是(甚至接近于)sed 第一次对我产生无法解释的结果。
为什么,哦,为什么,sed 不匹配同一实例中的表达式中的语法,但是当管道传输到另一个 sed 实例时匹配?而且,为什么,哦,为什么,当我这样做时我必须使用不同的分隔符(为了不得到“未终止的's'命令”?
我问的真正原因是:这是 sed 中的错误,还是我不理解的正确行为(如果是,有人可以解释为什么这种行为是正确的)? 我想知道我是否做错了,或者我是否需要不同/更好的工具(或两者,它们不必相互排斥)。
如果有人可以证明为什么这种行为是正确的,或者他们可以证明为什么这是一个错误,我会将它标记为答案。 我很乐意接受有关其他工具或使用 sed 的不同方法的任何建议,但这些不会回答问题。
我将不得不在其他文本处理器(如 awk、tr 等)上做得更好,因为 sed 花费了我太多时间来处理无法解释的结果。
PS 这不是我的 PATH 操作的完整逻辑。完整的逻辑还完成了在所有行前面加上从 'A00-' 到 'Z99-' 的值,然后将输出通过管道传输到 'sort -u -f' 并返回到 sed 以删除每行上的相同前缀并将行 ('\n') 回到冒号 (':')。然后将“export PATH='”附加到单行并附加“'”。然后将该输出重定向到一个临时文件中。接下来,获取该临时文件。最后,该临时文件被删除。
/etc/profile 脚本还显示排序前后的 PATH 内容(以防它搞砸了路径)。
PPS 我确信有更好的方法来做到这一点。它从一些非常简单的 sed 操作开始,发展成为你在这里看到的怪物。即使有更好的方法,我仍然需要知道为什么 sed 会给我这些结果。
static-linking - MinGW-w64 的 ar.exe 在尝试构建静态库时找不到库
几天来,我一直试图让 MinGW-w64 在我的系统上工作,主要是因为它有更新的 GCC 版本,但我要么设置错误,要么 MinGW-w64 本身存在一些奇怪的问题。
我现在已经下载了i686-w64-mingw32-gcc-4.7.2-release-win32_rubenvb,将其解压缩C:/Dev/mingw-ruben
并添加C:/Dev/mingw-ruben/bin
到 $PATH 环境变量的路径。
我正在尝试构建的是带有 CMake 文件的SFML 2 。运行 CMake 会正常工作,编译器会被识别并通过所有测试。CMake 还会ar.exe
在C:/Dev/mingw-ruben/bin
文件夹中找到 。生成 MinGW Makefile 后,我切换到 Windows 命令行并运行mingw32-make install
. 问题出在哪里,我收到错误消息:
或者对于网络库
错误似乎很明显,检查时确实没有libopengl32.a
或libws2_32.a
in mingw-ruben/lib/
,但文件实际上位于C:/Dev/mingw-ruben/i686-w64-mingw32/lib
.
现在我如何告诉 ar/make/cmake 不仅在mingw-ruben/lib
目录中搜索,而且在mingw-ruben/i686-w64-mingw32/lib
?
i686-w64-mingw32
将所有内容从子文件夹复制到mingw-ruben
根文件夹是个好主意吗?
附带说明:我可以mingw32-make install
再次调用,该过程将继续,但在尝试将我的应用程序与 SFML 链接时,我遇到了许多glXYZ
来自 SFML 的函数的未解决符号错误。
更多信息:我使用的是 Windows 8 x64,但我认为这并不重要,是的,我尝试过 MSYS,但它不能解决我的任何问题。
难道我做错了什么?我必须专门配置东西吗?
mingw - 在 Linux for Windows 上交叉编译 gtkmm 会出现错误“无法识别的选项 '-pthread'”
我正在尝试编译简单的“Hello World!” gtkmm教程中提供的 gtkmm 源代码,在 Linux 上使用 mingw 制作 Windows 可执行文件。
我可以通过以下命令行执行编译的源代码:g++ main.cpp -o bin `pkg-config gtkmm-3.0 --cflags --libs`
在 linux 上,一切正常,但是当我尝试使用时i686-w64-mingw32-g++ main.cpp -o bin `pkg-config gtkmm-3.0 --cflags --libs`
,它无法显示此错误:
有什么我想念的并且必须在编译之前安装吗?
此外,是否有一个简洁的交叉编译教程(尤其是关于 gtk+ 或 gtkmm)?我搜索了很多,但没有什么有用的。