问题标签 [msys2]
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.
c++ - MSYS2 区分大小写并包含在 XP 上?
我正在尝试使用 MSYS2 ( msys2-base-i686-20160205.tar.xz
) 在 XP 上编译一个项目。包含的文件之一是:
反过来,该文件在其第 34 行中执行:
该文件已经存在,例如:
... Z:驱动器也是我的代码的位置。在我的g++
编译行上,我-I Z:/msys32/mingw32/i686-w64-mingw32/include
首先,在很多包含之后,-I /z/path/to/libA/Include/A/B
. 但是,当我尝试编译时,编译失败,与String.h
.
因此,我通过添加(“在预处理阶段后停止”)并在命令行-v -E
更改为进行了检查,并且可以在结果中看到:-o File.e
g++
File.e
据我了解,预处理器来到第 34 行Z:/path/to/libA/Include/A/B/String.h
,看到#include <string.h>
,开始string.h
在当前目录中查找 - 并找到它,即使它不以这样的名称存在!?事实上,如果我从 MSYS2 bash
shell 执行:
...没有返回任何内容(同时String.h
找到大写的);但是,如果我强制使用非大写名称或大写名称的列表:
...那么它们都被报告为存在?!
我猜这就是“混淆”g++
的原因,因为它被阻止在系统路径的其他地方/中寻找string.h
(微小的字母)。因为,我发现Git-windows 区分大小写的文件名没有正确处理,并且:
虽然 NTFS(和一些远程文件系统)支持区分大小写,但从 Windows XP 开始的 NT 内核默认不支持它。相反,您必须调整注册表设置并重新启动。因此,Cygwin 不支持区分大小写,除非您更改该注册表值。
如果你真的想在 Cygwin 中区分大小写,你可以通过将注册表值设置
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
为 0 来打开它并重新启动机器。
...我这样做了,但我仍然遇到同样的问题;不确定这是否是因为我在 MSYS2(不是 Cygwin)上使用了 MINGW;或者因为像Enable casesensitive behavior with Windows XP and Interix Subsystem 或 SFU这样的资源引用HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Kernel\ObCaseInsensitive
(注意,大写);但是,我已经有了这些键(我只是将其设置为 0,然后重新启动),并且它们带有微小的字母,就像在 cygwin.com 链接中一样。此外,重新启动后测试,这也没有帮助。
虽然如何使 MinGW 对包含的头文件名区分大小写表明这可能无法解决 - 我能做些什么来解决这个问题,并说服从系统位置g++
读取string.h
?我已经尝试在不同的机器上构建相同的库,Windows 7 或 8 远程桌面,它使用相同的 MingW 版本 - 所以应该可以做一些事情......
windows - 展开包含 '(' 的 bash 环境变量
在 Windows 10 上使用来自 msys2 的 bash,我似乎无法在 bash 脚本中将变量设置为包含括号的 Windows 环境变量,即 '('。例如,
不起作用,它扩展了 env 变量$PROGRAMFILES
。我试过用反斜杠转义,即。"$PROGRAMFILES\(x86\)" 但这不起作用。bash中有没有办法解决这个问题?还是扩展变量中不允许使用括号?所有 windows 变量在进程环境中都可用。
c - 在 Windows 10 上安装 GTK for c?
你能告诉我如何在 Windows 10 上安装 GTK 或者有一个分步指南,我试过的所有这些都没有帮助我。可能如果有人还解释如何从 cmd 编译或准备 IDE(代码:可能是块)。
c++ - msys2下如何创建alpha_encoder.exe(webm-tools)?
我正在尝试编译alpha_encoder)(WebM Project的小实用程序,在webm-tools下)。我在. _ _ _ c:\FFcompiler
它花了一些时间,但我设法编译了ffmpeg,所以我决定使用它(我认为它会做)。这就是我到目前为止所做的。
首先,我将 webm-tools克隆到/cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/win32/libvpx-1.4.0/third_party/
. 有一个Makefile
所以我试图运行make
:
但是g++抱怨mkvparser.hpp
不存在。命令是
在网上搜索后,似乎webm-tools依赖于libwebm,并期望找到它作为webm-tools的同级文件夹。所以...
怎么办?README.libwebm
告诉“使用 mingw-w64 为 Windows 交叉编译 libwebm”首先我必须cmake
像这样运行cmake -DCMAKE_TOOLCHAIN_FILE=path/to/libwebm/build/mingw-w64_toolchain.cmake path/to/libwebm
。就我而言:
并且cmake
找不到i686-w64-mingw32-g++。bin
在谷歌搜索更多之后,解决这个问题的最简单方法似乎是添加mingw-w64-i686
to PATH
。
在此之后,现在cmake
成功完成并创建一个Makefile
,但因 make
错误而停止:
我已经搜索了该错误,但我被卡住了。我错过了什么?
ruby - msys2 下的 ruby gem 原生扩展失败
我正在尝试安装几个 gem,其中一些需要构建本机扩展。
由于某种未知原因,自动生成的 Makefile 无法正常工作。产生的错误是:
当我进入这个文件夹并手动执行make时:
更仔细地检查问题:
如果我稍微修改 Makefile(删除对对象标题的依赖),就会发生明显的情况:
手动运行命令(由 生成make -n
)没有错误并且编译成功。不幸的是我不能使用这个hackery来构建gem。
那么问题来了:为什么系统在make运行时找不到header,而直接使用gcc却找到了?我需要改变什么?
windows - 在 Windows 10 上通过 MSYS2 安装 hmatrix 时遇到问题
我一直在尝试在我的(64 位)Windows 10 计算机上安装 hmatrix;在搜索并尝试了许多可能的解决方案(包括此处给出的“Windows”和“Alternative Windows Build”下的说明)之后,我决定继续在这个Reddit 线程上给出的操作过程。
但是,当我输入命令时
进入 MSYS2 shell,给出以下日志:
但是,当我检查目录时c:\msys64\mingw64\bin
,我发现libopenblas.dll
它就在那里;我不知道为什么阴谋集团似乎找不到它。
关于为什么这不起作用或该怎么做的任何见解?
更新:
文件libopenblas.dll.a
和libopenblas.a
在目录中c:\msys64\mingw64\lib
。是否有可能我也需要以某种方式包含这个目录?(如果我这样做,我会怎么做?)
我还下载了下面 Alex Vorobiev 评论中的文件,c:\msys64\mingw64\bin
如果它们是 .dll 或c:\msys64\mingw64\lib
它们是 .libs,则将它们放入。头文件已经包含在c:\msys64\include\openblas
.
在进行这些更改后,我尝试了原始帖子中命令的几种变体,包括切换\bin
和\lib
切换\include
,\include\openblas
但所有这些仍然给出相同的错误。
linux - 为什么 Cross gdb 需要 libexpat-1.dll?
我刚刚通过在 MSYS2/MINGW64 上编译源代码编译了一个交叉 gdb。但是当我运行 gdb 时,它会抛出一个错误并抱怨它无法启动,因为它需要libexpat-1.dll
.
这就是我编译 gdb 所做的:
- 得到源代码
git clone git://sourceware.org/git/binutils-gdb.git
在不同的目录中:
export TARGET=x86_64-amd-linux-gnu
export PREFIX=/tmp/myToolChain
binutils/gdb/path/configure --with-python=/mingw64/bin/python --target=${TARGET} --prefix=${PREFIX} --disable-shared --enable-static
和
make && make install
它编译没有任何问题。但是我不知道为什么它需要这些库,而我已经静态编译它并禁用了共享库。
我也尝试libexpat
在编译期间不使用,但随后它抱怨另一个库libiconv-2.dll
。
我搞砸了什么?
编辑:我没有C:\msys64\mingw64\bin
在我的道路上。添加它后,我不再收到以前的错误。
但是我仍然有这个问题,为什么虽然我静态链接库,但最终的二进制文件仍然需要一些库?
python - 跨gdb找不到python
我使用 MSYS2/MINGW64 在 Windows 上构建了一个支持 python 的交叉 gdb。我已经在 MINGW64 中安装了 python,即我有python2.7.exe
并且C:\msys64\mingw64\bin
这个地址在我的路径中。
运行 gdb 时出现以下错误
我还添加C:\msys64\mingw64\lib
了我有的地方,libpython2.7.dll.a
但我仍然得到同样的错误。
我还尝试在 Windows 上安装 python 并设置所有路径,但仍然是同样的错误。
如何让 gdb 找到 python?
qt - 如何在 Qt Creator 中使用 MinGW-64
我知道有很多关于这个的帖子,但老实说我没有理解任何一个。
那么,如何为我的 Qt Creator(开源 5.7)安装套件?
- 我已经下载并安装了 MSYS2.... 不知道如何处理它。
- 我已经下载并安装了 Qt64 - NG.... 不知道下一步该做什么。
我只是希望能够在 Qt 中进行开发,并在 MinGW 32 和 MinGW 64 之间进行了选择。
提前致谢!
编辑:我还检查了 wiki 页面。大多数命令都不起作用。我被告知它已经过时了。