从命令提示符或 PowerShell 调用 MSYS2 Shell
从命令提示或powershell开始(要么很好;我可以弄清楚如何做另一个给定的),如何调用msys2 shell运行命令? 更具体的问题 我包括这些信息以避免XY问题,但我坚信这是通过上述答案(更一般)问题来解决的. 特别是,我希望编写一个shell脚本以更新第三部分,步骤3在这里.所以我需要类似的东西: [invoke msys2 bash] -c "pacman -Sy --needed msys2-runtime" 直接调用bash可执行文件不起作用: C:\>C:\msys64\usr\bin\bash.exe -c "pacman -Sy --needed msys2-runtime" /usr/bin/bash: pacman: command not found 我认为这是一个环境问题.更改PATH以包括MSYS2 bin目录的路径也无法解决问题.当它试图安装软件包时,会发生坏事(Nano只是一个示例): C:\>bash -c
22 2024-04-22
编程技术问答社区
如何从MSYS Makefile中为C++程序定义一个路径?
我的问题:在我在MSYS和MSYS2环境中使用的Makefile中,我知道一条路径Python_root_dir,该路径应在C ++程序中的编译时间使用.问题是python_root_dir在Makefile中被称为posix样式路径,例如/mingw64/bin,在C ++程序中,它的形式应像"C:\\prog64\\msys64\\mingw64\\bin".其他挑战是,根据配置变量Pythonmajor,路径应为宽字符或普通字符. 我的问题:如何在MakeFile中解决此问题,而无需在MSYS或MSYS2环境中安装其他程序/脚本? 解决方案 问题的一部分在 msys path path conversion(或MSYS的Cygpath?),即如何将MSYS样式路径转换为Windows样式路径.我在makefile中的完整解决方案是: ifeq ($(PYTHONMAJOR),3) L=L endif DEFINES += -DPYTHON_ROOT_DI
10 2024-04-10
编程技术问答社区
Windows 64 MSYS2 MSYS GCC致命错误。无法执行'cc1'。
试图执行简单的Hello World程序时,我会不断收到以下错误消息. gcc: fatal error: cannot execute 'cc1': CreateProcess: No such file or directory compilation terminated. 我尝试卸载和重新安装MSYS2两次.我认为这可能与我设定的道路有关.我有以下路径设置: c:\ msys64 \ usr \ bin c:\ msys64 \ mingw64 \ bin 当我尝试使用C ++运行Hello World程序时返回类似的错误: g++: fatal error: cannot execute 'cc1plus': CreateProcess: No such file or directory compilation terminated. 解决方案 这是CC1.EXE的问题,包括Windows Defender在内的多个防病毒程序.此后,M
20 2024-04-09
编程技术问答社区
如何使用Msys2和MinGW在Windows上建立OpenLDAP库?
我正在尝试在Windows上构建OpenLDAP.我很难做到. 我开始遵循概述的指示 i然后找到 this ,并意识到这也不是正确的. 我终于找到了是否有一个构建此库的规范来源? 我正在使用: Windows 7专业. msys2(x86_64 20160205 openssl(版本1.0.1r摘自在这里) rxspencer(alpha 3.8.g7来自 OpenLdap(版本2.4.44,来自 步骤0: 编译RxSpencer ./configure make make check make install 步骤1: 使用Visual Studio 2010 x64命令提示 编译OpenSSL perl Configure no-ssl2 VC-WIN64A --prefix=d:\temp\openssl\x64 ./ms/do_win64a.bat nmake -f ms\nt.mak nmake -f ms\ntdll.
28 2024-04-09
编程技术问答社区
在Windows上运行libxlsxwriter
我正在尝试使用libxlsxwriter,但是我似乎可以正确编译或正确运行. 我遵循Windows的指示,使用Mingw-w64和msys2在此处可用:. 我从他们的网站安装msys2,并使用pacman -Syu更新了所有内容.然后我安装了zlib建议: # Install the dev tools for libxlsxwriter. pacman -S git gcc make zlib-devel 然后我运行代码以下载和编译libxlswriter: # Clone and build libxlsxwriter. git clone https://github.com/jmcnamara/libxlsxwriter.git cd libxlsxwriter/ make make install # run example cd .. cc myexcel.c -o myexcel -lxlsxwriter -lz 现在有一个名为myexcel
16 2024-04-09
编程技术问答社区
MSYS2: 如何禁止将路径名自动转换为驱动器名称?
在MSYS2 Shell中使用MINGW编译的C程序时,我正在面临问题:我写了一个命令行解析器,该解析器根据Windows Judvention接受选项(以/开始).如果我这样称呼我的程序来生成输出文件: ./example.exe /o test 最终以argv[1]的方式是O:/.从运行CMD.EXE的控制台窗口进行测试时,它可以正常工作.这个真正最小的程序展示了行为: #include int main(int argc, char **argv) { if (argc > 1) { puts(argv[1]); } return 0; } $ ./example.exe /o O:/ 所以我想这是MSYS2 Shell试图有用的,并替换出在根下方的单个字母路径中的东西中的东西.有没有办法禁用这种行为?总是启动CMD.EXE进行测试有点麻烦. 解决方案 您可以使用MSYS2_ARG
26 2024-04-07
编程技术问答社区
可执行的merge.exe(从MSYS2中提取)在Windows上不运行。
1.问题解释 我需要在Windows 10上运行merge工具(GNU RCS项目的一部分 - 修订控制系统).这是要求: 步骤1:可执行文件merge.exe必须在本机Windows CMD终端运行. 步骤2:不应修改PATH env变量. 步骤3:可执行文件可以位于任何任意文件夹中(当然,如果需要,可以将一堆DLL放在旁边). 这将使我们太远,无法解释为什么这些要求如此重要.拜托,只要它们"按原样". 2.第一次试用:运行MSYS可执行文件 我在C:/msys64中安装了msys2,并在此位置找到了可执行文件:C:/msys64/usr/bin/merge.exe.所以是时候尝试步骤1〜步骤3. 步骤1 如果我将C:/msys64/usr/bin/添加到PATH env变量: C:/Users/Kristof>merge.exe a.txt b.txt c.txt huray! 步骤2 不幸的是,当我不修改PATH env变
18 2024-04-05
编程技术问答社区
如何使用MSYS上的Boost编译C ++代码2
i(认为)我已经安装了所有需要的库,例如, pacman -S mingw-w64-x86_64-boost 也是MSYS2安装文档推荐的常见开发库.我正在用这些测试,其中包括: #include #include #include #include 我尝试了各种排列,例如下面的错误: $ g++ -std=c++11 main.cpp -lboost_programoptions -I /mingw64/include/boost/ -o main main.cpp:10:10: fatal error: boost/program_options: No such file or directory 10 | #include | ^~~~~~~~~~~~~~~~
22 2024-04-02
编程技术问答社区
如何强迫make在Windows/MSYS2上使用bash作为外壳?
我正在尝试重新编译已经具有Windows端口的应用程序(因此应该可以使用) 当然,您仍然需要运行./configure,因此您需要MSYS或MSYS2. 配置零件效果很好.现在,当我运行make -n(因此显示执行哪些规则)时,我会得到: $ make -n if test ! -f config.h; then \ rm -f stamp-h1; \ make stamp-h1; \ else :; fi ! was unexpected make: *** [config.h] Error 255 ! was unexpected是法语消息的大致翻译(因此可能略有不同),但使我想起了很多隐秘的Windows批处理文件消息.因此,我想make使用Windows本机壳运行其命令行(对于大多数简单命令而言,这不是问题,但在依赖类似bash的shell时并不是一个问题),这是通过使用" make debug"模式确认的假设: $ make -d GNU M
14 2024-03-28
编程技术问答社区
MSYS2和Cygwin之间的区别
传统上,MSYS BASH被认为不如Cygwin Bash. 前者是MINGW内部用于运行AutoConf脚本的辅助工具. 但是现在有mingw-w64和msys2.后者以甜美的pacman的货物像包装经理和ZSH等优雅的贝壳发货,所以我想知道仿真层是否仍然存在差距. mingw*应用程序是Windows本机可执行文件,而MSYS2软件则需要一个Posix-emulation Layer,就像Cygwin一样.至少对于休闲用户,很难发现两者之间的差异. 两个仿真层之间的功能差异(如果有)? 哪种仿真更快(更有效)? 解决方案 传统上,MSYS Bash一直很劣,但主要是因为Cygwin一直保持活跃的发展,而MSYS则没有. MSYS从Cygwin版本1.3.3分配,永不重新同步,而MSYS2定期与Cygwin项目一起使用. 我们没有"像包装经理"的"甜美pacman",我们可以直接重新编译Arch Linux的Pacman Package Manager.
18 2024-03-28
编程技术问答社区
为什么Git Bash不能运行我的可执行文件?
我在 git-for-windows git bash.我无法在命令行上运行可执行文件: Pedr@Abc-07 MINGW64 /c/dev $ ls sqlite3.exe sqlite3.exe* Pedr@Abc-07 MINGW64 /c/dev $ sqlite3 bash: sqlite3: command not found 为什么这样? 解决方案 要在Bash的当前目录中运行一个程序,您将./放在其前面.因此,在您的情况下: $ ./sqlite3.exe 运行sqlite3时,BASH将在PATH环境变量的所有目录中查找具有该名称的程序,默认情况下,该程序包括/usr/local/bin(例如/usr/local/bin)的标准位置,而不是您当前的目录. 有关此信息的更多信息. 其他解决方案 这是因为您处于A是GCC的运行时环境,它为您提供了Windows下的二进制文件的支持,但是您可以使用./使用任何EXE作为shell ./(
10 2024-03-28
编程技术问答社区
我如何将MSYS2 shell整合到Window上的Visual studio代码中?
我试图将MSYS2 Shell集成到Visual Studio代码集成终端中.这是我的用户设置: { "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", "terminal.integrated.shellArgs.windows": ["--login", "-i"] } 但是,我遇到了一个问题,--login将当前的工作目录更改为Windows Home.我希望当前的目录处于工作空间的根源. 我的进一步尝试是我尝试添加一个标志-c 'cd ${workspaceRoot}'.但是,狂欢会开始崩溃.我可以通过删除--login来适当地到达当前目录,但是如果没有登录模式,所有其他shell命令(ls,cd等)都不可用. 如何将MSYS2壳正确整合到我的VSCODE中? 解决方案 #original但不工作100%(被接受为答案) 这将正确启动msys2
12 2024-03-27
编程技术问答社区
在msys2上安装和使用无臂-EABI-GCC
我正在尝试使用GNU ARM工具链" MAKE ALL"构建一个嵌入式程序,但它尚不正常. 我根据本网站的XPM安装程序安装了XPM: https://gnu-mcu-mcu-eclipse.github.io/工具链/ARM/install/ 现在,当我尝试使用" Make All"构建程序时,我会得到以下错误: $ make all 收集依赖项:bsp/.... cpp /bin/sh:Zeile 1:无臂 - 艾比·gcc:未找到命令 - ... 该文件当然位于Xpack位置: c:\ users \\ appdata \ roaming \ xpacks 正常的mingw64二进制文件位于另一个位置.我现在如何使用无臂-EABI-GCC或如何编辑MSYS2的路径变量以使用XPM软件包? 这里也有类似的工具链: gcc-arm-embedded/+存档/ubuntu/ppa ,但我想我不能没有像Linux子系统这样的东
20 2024-03-03
编程技术问答社区
在 python 下使用 64 位 msys 安装 xgboost 失败
我想使用Anaconda Python安装XGBoost.在此过程中,我正在尝试安装XGBoost.在尝试"制作" XGBoost时,我会收到以下错误: C:\GitRepository\xgboost> g++ -m64 -c -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -fopenmp -fPIC -o updater.o src/tree/updater.cpp src/tree/updater.cpp:1:0: warning: -fPIC ignored for target (all code is positio n independent) // Copyright 2014 by Contributors ^ src/tree/updater.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in make: *** [updat
16 2023-12-20
编程技术问答社区
在Windows下使用MSYS2时GDB编译失败
我需要编译OS Linux目标的GDB,但使用Windows主机OS. (目标是有可能在Windows上运行GDB客户端并将其连接到Linux上运行的GDBSERVER). 我正在使用GDB源V 9.2和以下配置命令: ../configure --build=x86_64-w64-mingw64 --target=x86_64-unknown-linux-gnu 它从GDB Golder内的构建目录运行. 我会收到以下错误: mkdir -p -- nat/.deps CXX gdb.o CXX ada-exp.o ada-exp.y: In function 'int ada_parse(parser_state*)': ada-exp.y:736:15: error: 'yyin' was not declared in this scope; did you mean 'yyrline'? ada-exp.y:736:3: erro
16 2023-12-07
编程技术问答社区
如何编译mingw-w64-crt
我在Windows 10上,使用最新版本的MSYS2(安装了GCC:pacman -S gcc) 我正在尝试编译mingw-w64-headers和mingw-w64-crt来自 mingw-w64-v7.0.0.0 在我的msys2安装目录C:\msys2内部,我创建了文件夹mingw-w64我在下面的前缀参数中引用. 要编译每个我使用相同的步骤(在适当的情况下替换库的名称): mkdir mingw-w64-crt && cd mingw-w64-crt ../mingw-w64-v7.0.0/mingw-w64-crt/configure --prefix=/mingw-w64 make make install 这适用于mingw-w64-headers,但是对于mingw-w64-crt,我在make步骤中遇到错误.具体来说:分配给类型' mbstate_t '{aka' struct Anonymous '} 从type'int''分配给' mbS
6 2023-12-07
编程技术问答社区
locale::facet::_S_create_c_locale名称对空的本地名称无效。
我正在编写用于打印u8string ostream的函数.这就是我想到的: auto operator std::ostream& { std::locale::global(std::locale{".utf8"}); auto& ret = out (str.data()), str.size()}; std::locale::global(std::locale{""}); return ret; } 这可以很好地编译.但是在执行时,这失败了: terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_c
18 2023-12-07
编程技术问答社区
为什么MSYS2的随机数都一样?
我正在尝试使用std::random_device生成随机数,但是每次运行程序时,它们都是相同的.我使用在线IDE尝试了相同的代码,并且按预期运行.根据在这里回答,这是Cygwin和MSYS2的错误. 我如何升级msys2?我尝试在其终端中运行命令pacman -Syu和pacman -Su,但它有错误: MSYS ~ $ pacman -Syuu error: mingw32: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown error: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" could not be looked up remotely error: mingw64: key "4A6129F4E4B84AE46ED7F635628F528CF3053E04" is unknown error: key "4A6129F4E4B84AE46ED7F6
14 2023-12-06
编程技术问答社区
如何将使用sys/ioctl.h的代码移植到MinGW gcc?
我的代码( https://github.com/fangq/mmmc , https://github.com/fangq/mcxcl )已在Linux&Mac上使用GCC进行编译,Windows上的Cygwin-GCC或MSYS2-GCC,但没有使用mingw编译器(x86-64-mingw64-* cygwin64,msys2,mingw64或tdm-gcc或 matlab mingw64支持(mingw64 gcc 4.9.6))文件(sys/ioctl.h,ieee754.h等),因此我在源代码中包含了这些标头文件的副本,并添加了-I./mingw64/include以使其中大多数编译 /master/src/mingw64/包括 但是,当使用Error using mex mcx_utils.o: In function `mcx_progressbar': D:/Users/fangq/Gitroot/Project/mmc/src/mcx_utils.c:10
82 2023-12-06
编程技术问答社区
冲突的msys2-runtime和catgets
我在SISTEM上安装了64位版本的MSYS2.安装后,我在:: Synchronizing package databases... mingw32 is up to date mingw64 is up to date msys is up to date :: Starting core system upgrade... warning: terminate other MSYS2 programs before proceeding resolving dependencies... looking for conflicting packages... :: msys2-runtime and catgets are in conflict. Remove catgets? [y/N] 它说msys2-runtime和catgets发生了冲突,问我是否要删除octgets.在此步骤中我该怎么办? 解决方案 您应该回答y删除catgets. msys2-runti
16 2023-12-06
编程技术问答社区