我只是尝试使用MinGW在MSYS中构建netcat,并意识到MinGW从未真正将所有BSD套接字移植到Windows(例如sys/socket.h).我知道你可以在MinGW中使用Windows套接字,但为什么他们从不制作BSD套接字的Windows端口?我注意到有很多程序使用#ifdef来解决这个问题.是否有某个可以使用的BSD套接字的Windows端口?
以下是在MSYS中为netcat执行make时的错误:
gcc -DLOCALEDIR=\"\/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -c `test -f 'core.c' || echo './'`core.c
In file included from core.c:29:
netcat.h:38:24: sys/socket.h: No such file or directory
netcat.h:39:63: sys/uio.h: No such file or directory
netcat.h:41:24: netinet/in.h: No such file or directory
netcat.h:42:55: arpa/inet.h: No such file or directory
MinGW没有#ifdef.是否有一个库/包我可以添加到MSYS,使一切编译没有错误?
我似乎无法掌握两者之间的差异.
似乎one(GNUWin32)是一个在windows(如MSYS)之上的层,而
另一个(cygwin)是另一个(?)
那是什么意思?我何时会使用一个而不是另一个?他们都适合同样的事情吗?
我想把它主要用于git,但是想要保持我的选择开放学习和做所有事情*nixy.
还有其他工具吗?会msysgit更适合这个吗?
是否有任何资源能够详尽地解决所有这些*nix平台的差异?
MSYS2默认shell(bash)可以在三个启动器中选择,也可以设置环境变量MSYSTEM.特别:
msys2_shell.bat 设置它 MSYSmingw64_shell.bat将它设置为 MINGW64和 mingw32_shell.bat设置它MINGW32.除了贝壳的提示,明显的区别是:
$MSYSTEM导出;uname输出基于$MSYSTEM;$MSYSTEM是 MINGW*,/mingw*/bin在第一路径$PATH.假设我们有/usr/bin/gcc,/mingw64/bin/gcc, /mingw32/bin/gcc,的设定值的一个合理的结果$MSYSTEM是,我们将使用不同的编译器生成的不同的二进制(POSIX或天然32/64).
$MSYSTEM价值决定的其他重大差异是什么? pacman受子系统?当我使用MSYS编译某些东西时,该./configure步骤可能需要更长的时间make.但是,Linux中的相同过程具有快速配置和慢速制作.这只是MSYS中的一些设置会让我的系统陷入困境吗?有没有人有办法解决吗?
我需要一个可维护的MSYS shell.这是我目前的困境:
默认的rxvt.exe有一个滚动条并复制和粘贴,但不会将控制字符或箭头键发送到shell中正在运行的程序(如解释器/调试器).当使用Haskell解释器ghci时,这是一个真正的刺.
另一个shell sh.exe处理控制字符(或至少其中一些),但没有滚动条或复制和粘贴.
rxvt在输出缓冲方面也存在(相对)更多问题
我有什么选择?替换shell需要知道msys吗?我想要的只是一个理智的环境,可以使用Haskell(ghc),C++(gcc)和基本工具链(make和what not).如果它不涉及疯狂的恶作剧,我愿意编译一个shell.
我在Windows 7计算机上安装了MinGW和MSYS.我加入C:\Program Files (x86)\MinGW\bin了我的道路.命令如gcc和g++工作,但make没有.我查看了目录,并且没有调用可执行文件make,即使我安装了所有组件.有一个名为的文件mingw32-make.还有其他前缀的文件mingw32-,例如c ++,g ++,gcc,gcc-4.6.1和gfortran.然而,有一个make在C:\Program Files (x86)\MinGW\msys\1.0\bin.
如果我打开MinGW Shell并输入make,请执行.但是,它不会从Windows终端执行.
这是故意的,还是我可能会遗漏其他可执行文件?我应该加入C:\Program Files (x86)\MinGW\msys\1.0\bin我的路径吗?
我使用git作为我的修订控制系统.为此,我安装了msysGit来检查我在MSW上的存储库.现在我想用MinGW编译我的程序,并为我发现这个"问题":当我通过mingw-get安装MinGW和MSYS时,我可以编译我的程序,没问题.但我无法访问git.当我使用Git Bash时,我可以使用git,但无法编译.
有没有可能:
我会更喜欢我可以更容易地保持两个包更新的方式.
提前致谢 :)
我正在使用mintty + msys.我想用它来使用emacs.但没有GUI.
我在cygwin中看到了这种行为.但我无法理解他们是如何做到的.
$ emacs -nw
emacs: standard input is not a tty
$ stty.exe -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = ^Z; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd …Run Code Online (Sandbox Code Playgroud) 在搜索之后我发现了一些信息(但对我来说很困惑)
Cygwin是一个类似Unix的环境和Microsoft Windows命令行界面.
我在维基百科上找到了上面这行,但这是什么意思?我对MinGW,cygwin和msys没有一个清晰的认识,请帮忙
我正在尝试使用git bash(msysgit)将unix样式路径传递给Android adb命令,但shell正在错误地解释我的路径.这是我到目前为止所尝试的:
$ adb push myfile /mnt/sdcard/
failed to copy 'myfile' to 'C:/Program Files (x86)/Git/mnt/sdcard/': No such file or directory
$ adb push myfile "/mnt/sdcard/"
failed to copy 'myfile' to 'C:/Program Files (x86)/Git/mnt/sdcard/': No such file or directory
$ adb push myfile '/mnt/sdcard/'
failed to copy 'myfile' to 'C:/Program Files (x86)/Git/mnt/sdcard/': No such file or directory
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?