我想交叉编译GCC.我使用MSYS2作为shell,并使用mingw-w64作为编译器.
我已经下载了binutils-2.25并配置了:
../binutils/./configure --target=sh3eb-elf --prefix=C:/tempinstall/ --disable-nls
Run Code Online (Sandbox Code Playgroud)
我尝试binutils
在libiberty/pex-unix
文件上构建时出错:
在函数'pex_wait'中:错误:'F_GETFD'未声明(在此函数中首次使用)错误:'FD_CLOEXEC'未声明(在此函数中首次使用)错误:'F_SETFD'未声明(首次在此函数中使用)错误:'F_DUPFD'未申报(首次使用此功能)
在函数'restore_fd'中:错误:'FD_CLOEXEC'未声明(在此函数中首次使用)错误:'F_SETFD'未声明(在此函数中首次使用)
在函数'pex_unix_fdopenw'中:错误:'F_SETFD'未声明(在此函数中首次使用)错误:'FD_CLOEXEC'未声明(首次在此函数中使用)
几个月前我已经构建了相同的编译器而没有任何问题.但我已经改变了OS(Windows 7到W10)和编译器(MinGW-GCC 4.8到Mingw64-GCC 4.9)
我按照本教程
我试图在Cygwin上安装Rust但无法与mingw链接.现在我正在尝试使用Msys2安装它.我已经安装了Msys2和Mingw.我试着按照这个维基页面,但我在第2号迷路了:
使用安装程序下载并安装Rust + Cargo,但请务必禁用链接器和平台库选项.
它是指安装页面上的 "rustup-init.exe" 吗?我应该双击运行此文件还是从Msys2运行它?我试图从Msys2运行并获得选项:
Run Code Online (Sandbox Code Playgroud)1) Proceed with installation (default) 2) Customize installation 3) Cancel installation
我不知道接下来该做什么.
我试图跟随弗朗西斯的回答:
Thang@Thang-Laptop MINGW64 /c/Software/Rust
$ ./rustup-init.exe
Rust Visual C++ prerequisites
Rust requires the Microsoft C++ build tools for Visual Studio 2013 or later,
but they don't seem to be installed.
The easiest way to acquire the build tools is by installing Microsoft Visual
C++ Build Tools 2015 which provides just the Visual C++ build tools:
http://landinghub.visualstudio.com/visual-cpp-build-tools …
Run Code Online (Sandbox Code Playgroud) 从命令提示符或PowerShell开始(或者很好;我可以弄清楚如何执行另一个给定的),如何调用MSYS2 shell来运行命令?
我包含这些信息以避免XY问题,但我坚信这最好通过上述(更一般)问题的答案来解决.
特别是,我希望编写一个shell脚本来更新第三部分,第3步中列出的软件包.所以我需要这样的东西:
[invoke msys2 bash] -c "pacman -Sy --needed msys2-runtime"
Run Code Online (Sandbox Code Playgroud)
直接调用bash可执行文件不起作用:
C:\>C:\msys64\usr\bin\bash.exe -c "pacman -Sy --needed msys2-runtime"
/usr/bin/bash: pacman: command not found
Run Code Online (Sandbox Code Playgroud)
我认为这是一个环境问题.更改PATH
为包含MSYS2的bin目录的路径也不能解决问题.当它试图安装一个包时,会发生不好的事情(nano只是一个例子):
C:\>bash -c "pacman -Sy --needed --noconfirm nano"
:: Synchronizing package databases...
mingw32 is up to date
mingw64 is up to date
msys is up to date
resolving dependencies...
looking for conflicting packages...
Packages (1) nano-2.3.6-2
Total Installed Size: 1.81 MiB
Net Upgrade Size: 0.17 MiB
:: Proceed with installation? [Y/n] …
Run Code Online (Sandbox Code Playgroud) 我正在使用 MSYS2,我希望能够安装 flickcurl。
我尝试如下安装,但似乎找不到该文件。
$ pacman -S mingw-w64-x86_64-flickcurl
error: target not found: mingw-w64-x86_64-flickcurl
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
所以我正在开发一个Windows的Chef cookbook,这意味着它通常在Windows Server实例上执行(在本例中为2012r2).具体来说,我正在安装使用Cygwin的MSYS2.我注意到软件包安装非常慢,并且跟踪了一篇文章,显示了Cygwin中默认的nsswitch.conf如何使用较慢的动态SAM/AD集成.对于大多数用户,特别是对于我的测试环境,这不是必需的,因此我尝试按照这些步骤仅使用基于文件的用户/组.这导致了大规模的加速(大约6倍).
但有一种奇怪之处.它只有在我通过RDP至少登录一次服务器时才有效.否则回到减速 - 维尔.
由于这对自动化测试没有太大作用,我试图找出导致问题的确切原因.最可能的候选者是第一个RDP连接(即非WinRM /无头会话)正在填充无头会话不加载的用户配置文件的一部分,但我无法弄清楚是什么.我试过调用LoadUserProfile
,它应该创建一个它不存在的配置文件,但这还不够.
关于我缺少什么部分的任何想法?
我的操作系统是win7,我使用MSYS2(版本:MSYS_NT-6.1),请给出如何在这个终端上安装nodejs和npm的建议,谢谢!
我正在使用 Msys2 和 MingW 在 Windows 上构建 C 应用程序。
该应用程序将交付给不精通技术的最终用户的桌面 Windows 计算机。对此我有两个问题:
将使用 Msys64 和 MingW 构建的 Windows 程序发送到未安装这些软件的其他 Windows 计算机的最佳实践方法是什么?互联网上和此处的一些消息来源表示,我们别无选择,只能将文件与其依赖的exe
MingW 一起分发到同一目录中。或者,将与 MingWdll
静态链接。但是,我想确定这些是否确实是这样做的标准方法。奇怪的是 MingW 没有更好的方法。exe
dll
假设所说的exe
在某些时候也使用LoadLibrary
API 来动态加载dll
(想想插件系统)。这dll
也是使用构建的MingW
(在这种情况下,当然将与 一起运送给最终用户exe
)。我需要做什么特殊的事情才能确保dll
在未安装 MingW 的用户计算机上成功加载?
除了2:.lib
在开发机器上编译期间和/或在终端机器上启动期间,所述DLL是否需要存在导入库()?
编辑:请让我澄清一下,我没有使用MSYS2 作为命令行 shell。gcc
我通过 Windows直接使用 Mingw cmd
,并且只是从 MSYS2 下载目录中获取了 Mingw。
注意:根据评论,对该问题进行了多次编辑。它们如下所示,并用线分隔。 到目前为止,唯一剩下的问题似乎是 numpy 无法加载,可能(但不一定)是由于存在两个替代的 python 3.8 系统。
几个月前我更新了我的 msys2 系统。这显然包括从 python 3.7 到 3.8 的更新,但这给我留下了两个损坏的 python:我可以python
在 3.7 时启动,但没有关联的包,python
当它是 3.8 时我无法启动,这是包含包的版本. 我不知道这有什么问题,或者我做错了什么。我现在才注意到这一点,我第一次打算在升级后再次使用 python。
我将在这里描述我遵循的一系列步骤以及我发现的内容。为了清楚起见,我将在下面发布支持代码。
我可以启动python,但是pandas
在python中找不到(例如)和许多其他包。进一步检查,/mingw64/lib/python3.7/site-packages
基本上是空的(升级到 3.8 时肯定是空的)。
寻找pandas
软件包,我发现我安装了一个版本。
该pandas
版本适用于 python 3.8,肯定是从 3.7 升级的。
我PYTHONPATH
从 3.7重定向到 3.8
现在我什至无法启动python。
编辑现在我可以启动 python,但有一些错误配置问题(即部分修复)。
现在的问题是
如何修复 python3.8,它给出了以下错误?
ImportError: cannot import name 'open_code' from 'io' (unknown location)
如何修复 python3.8,这会导致以下问题?
新问题:
5.1. 我应该让 python 指向 3.8,并修复包。
5.2. 有些模块没有找到,有些是。
注意:我不知道Msys2升级是否中断python2-pyqt5与此有关。
有关的:
我在我的项目中使用 Qt 5.12.11。由于我想在linux和win上都使用该软件,所以我选择了gcc编译器(我使用MSYS2,所以gcc是10.3.0)。本地构建对于 linux 和 win 都可以,但是通过 GitHub Actions 构建无法找到 qt(无论我是否设置 CMAKE_PREFIX_PATH 或 Qt5_DIR)。
所以这就是我被困了一段时间的地方。有没有人遇到过这样的问题或者对此有什么想法?
github 操作看起来像
name: Build
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
BUILD_TYPE: Release
jobs:
build:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
install: mingw-w64-x86_64-toolchain
msystem: mingw64
release: false
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.12.11'
host: 'windows'
target: 'desktop'
arch: 'win64_mingw73'
dir: '${{github.workspace}}/qt/'
install-deps: 'true'
- name: List files in Qt
run: find …
Run Code Online (Sandbox Code Playgroud) 我一直在我的 Windows 10 机器上使用 Git for Windows。我使用 bash 和它附带的其他命令行工具。我需要 rsync,但发现这个包中没有它。我用谷歌搜索,发现了 mingw 风格的 rsync。当我运行它时,它抱怨缺少 zstd dll。我怀疑我正在混合为一个 mingw 环境构建的工具与其他环境。
在哪里可以找到在 Windows 上作为可移植 exe 运行的 rsync 或作为 Windows mingw 环境的 Git 的一部分运行的版本?
感谢您的帮助!