传统上,MSYS bash被认为不如Cygwin bash.前者是MinGW内部用于运行autoconf脚本的辅助工具.但现在有MinGW-w64和MSYS2.后者附带了像包管理器这样的甜蜜的pacman和像zsh这样的优雅shell,所以我想知道仿真层是否还有差距.
虽然MinGW*应用程序是Windows本机可执行文件,但MSYS2软件需要POSIX仿真层,就像Cygwin一样.至少对于一个随意的用户来说,很难发现两者之间的差异.
我试图理解gcc交叉编译器背后的命名约定,但似乎有相互矛盾的答案.我的系统中有以下三个交叉编译器:
在阅读GNU libtool手册时,它将交叉编译器命名约定指定为:
cpu-vendor-os(os = system/kernel-system)
对于我的系统中的编译器来说,这似乎并不完全准确.GNU手册中的信息是旧的,还是编译器分销商只是停止了它?
compiler-construction gcc naming-conventions cross-compiling
我一直试图了解Cygwin和MinGW究竟是什么,并且发现它非常令人困惑.如果你想用C++编程,你不需要一个C++编译器吗?从我所看到的,似乎他们努力在Windows上提供类似Unix的操作系统,但我没有看到它的重要性.我的意思是有一些原因导致C++无法在Windows上本地编译?我还读到它们包含库,这是因为C++核心语言不支持很多函数所以非常常见的库如此math.h附带吗?
我目前正在使用Windows 8.1,并且正在寻找安装GCC.我发现这样做的方法是通过MinGW和CygWin(最受欢迎).现在我想出了Windows的Windows子系统(WSL)和Windows 10中的Windows上提供的Bash.
问题1.是否可以通过Windows 10中的Bash安装GCC,并且它是否可以像在Linux发行版上那样工作.假设您有一个'helloworld.c'文件,如果我这样做,
> gcc helloworld.c
$ ./a
Run Code Online (Sandbox Code Playgroud)
在bash中我会得到输出(假设'helloworld.c'的内容很简单 - 一个cout声明.)
问题2.如果可能,那么哪种方法更适合在Windows上使用GCC.也就是说,a)MinGW或CygWin b)Windows上的Linux上的Bash.因为根据我对所读内容的理解,CygWin和MinGW会对它们上面开发的程序产生一些依赖性.
问题3.如果您已经阅读了这篇文章,那么请填写我对CygWin和MinGW的理解上的空白.也就是说,如果我只将其用于编译和运行代码片段而不是应用程序开发,那么我使用哪些内容并不重要,我是对的吗?因为代码(用C或FORTRAN编写),无论系统如何都会编译和执行,我是对的吗?
语境.我是一名从事数值计算(计算流体动力学)的学生,我的主要工作是在FORTRAN开发和运行CFD代码.我想要做的是在我的笔记本电脑上运行计算代码(我们主要使用FORTRAN),它在Windows上运行.我目前不打算为Windows或Linux开发应用程序或软件.但我仍然想知道事情是如何运作的,哪个是最好的选择.请详细解释.谢谢.
我有一个文件,其中的行看起来类似如下
data
datalater
983290842
Data387428later
datafhj893724897290384later
4329804928later
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用正则表达式来匹配以数据开头并以稍后结尾且中间有数字的任何行。这是我到目前为止所炮制的内容:
^[D,d]ata[0-9]*later$
Run Code Online (Sandbox Code Playgroud)
但是输出包括所有 datalater 行。我想我可以稍后通过管道输出和 grep -v data,但我觉得单个表达式应该可以解决问题。
我当然在中级编程了一段时间.我一直在这些不同的编译器中执行相同的代码(主要是GCC和MinGW),但我无法弄清楚这些编译器之间的区别.我的意思是一个人比另一个人更好?或是什么让他们与众不同?您是否有某些特殊需求可能需要使用GCC,而其他人可能需要使用MinGW?
我通过pacman安装了cmake 3.2.3.当我尝试从msys64 shell使用它时出错:
$ cmake -G "MSYS Makefiles" ..
CMake Error: Could not create named generator MSYS Makefiles
Run Code Online (Sandbox Code Playgroud)
cmake --help不会将其列为可用的生成器.
我确实看到/usr/share/cmake-3.2.3/Modules/Platform中有一个MSYS.cmake.
我错过了什么?
我想知道在什么情况下使用Cygwin编译C代码以及何时会选择MinGW.我找到了Cygwin和MinGW有什么区别?描述Cygwin和MinGW之间的差异.
据我了解,可以说以下内容:
但是,我的理解似乎是错误的,因为我能够使用MinGW编译包含pthread.h的虚拟程序.我错误地理解了什么?
我想在Windows中为Eclipse IDE安装GCC编译器.我知道有两种选择:MinGW GCC或Cygwin GCC.哪一个更适合Eclipse CDT?任何经验或建议将不胜感激.
我正在尝试在Windows中移植Linux软件.我的软件依赖于gtk,boost和libgerbv(我在cygwin上手动编译)我已经成功编译了它,如果我在cygwin的终端运行它,它可以工作,但是如果我将.exe复制到cygwin1的文件夹中. DLL和我运行它,它静默终止相同的结果,如果我在cmd.exe中运行它.
如何在cygwin环境之外"导出"此可执行文件?我想用只需要的共享库和cygwin1.dll来分发它
谢谢