贡献者: addis
Windows.h 调用 Windows API,在 Linux 上无法运行。
MinGW 加 MSYS 相当于一个轻量级的 Cygwin,后者编译的软件需要链接到 cygwin1.dll,它可以把对 Unix API 的调用转换成对 Windows API 的调用(但应该不在二进制层面)。
cat, echo 等命令。MSYS 提供 bash shell 和 cat, echo 等命令但本身不提供编译器。所以二者通常一起使用。建议直接安装 MSYS,然后用 pacman 安装 MinGW 的 gcc 编译器等。
mingw64.exe 即可打开 mingw 命令行。mingw64.exe 所在的目录就是命令行的根目录。
g++ 的版本。
g++ 编译程序以后,会出现 a.exe 而不是 a.out。这个执行文件是可以双击执行的,但是运行完会马上退出。可以在程序最后用 getchar()。也可以打开一个 cmd 命令行然后运行 a.exe。当然在 mingw64 的命令行也可以执行。另外执行时 .exe 拓展名可以省略。
apt 或类似的包管理软件,一切库都要自己手动编译。或者用 MinGW instellation 安装 32-bit 版本。MSYS 上可以用 pacman。
MinGW instellation manager 是一个 GUI 界面,可以下载安装编译好的 mingw 程序。例如安装 mingw32-make,安装以后就和 make 的用法一样。注意该 manager 并不是一个通用的包管理软件,里面的包基本还是围绕 GCC 的。
c 盘的目录为 /c
explorer 路径 可以在 路径 打开文件浏览器
code 文件或路径 可以用 VScode 打开
start 文件或路径 可以用默认软件打开(包括浏览器和 code 等)
g++ 中定义的宏有 __GNUC__,__MINGW32__,__MINGW64__
ldd 查看动态程序的库依赖(dll 和 so 拓展名都会搜索到,但建议用 dll,让其他 windows 程序也可以使用)。
g++ -shared -o lib0.dll lib0.o
g++ -shared -o lib1.dll lib1.o -L . -l 0
g++ -c main.cpp
g++ -o main.x main.o -l1 -L./ -Wl,-rpath,./
LD_LIBRARY_PATH 变量是没用的,直接添加到 PATH 就可以在其中的路径下自动搜索 dll
pacman 进行包管理,和 Arch linux 一样。
apt 命令中的不一样。
C:\msys64\,和 mingw 一样可以用 /c 访问 C 盘。
pacman -S mingw-w64-x86_64-gcc(UCRT 版的是 mingw-w64-ucrt-x86_64-gcc,MSYS 版的是 gcc)。
/mingw64/bin,要把它默认添加到 PATH,用 echo 'export PATH=$PATH:/mingw64/bin' >> ~/.bashrc; source ~/.bashrc
g++ --version 查看版本,愉快编译程序了。
g++ 编译时,宏 __MSYS__ 有定义,而 __MINGW32__ 和 __MINGW64__ 没定义。
pacman -S base-devel 包含 binutils bison diffstat diffutils dos2unix flex m4 make patch pkgconf texinfo texinfo-tex base-devel
a.exe。直接在 MSYS2 中运行没问题,但是如果在 Windows 中双击就会找不到 dll。
ldd a.exe 看看需要什么动态库。其中 /c/WINDOWS/SYSTEM32 类似的目录不需要管,因为它们已经在 PATH 中且是 Windows 系统提供的。
/ucrt64/bin/ 中(也就是 C:\msys64\ucrt64\bin\ 中)。UCRT 是 Windows 的 Unified C Runtime。
/mingw64/bin/ 中的 libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll
.dll 文件的目录中有同名的 .dll.a 文件,那么编译器会链接后者的符号
main() 函数退出前用一个 getchar(); 即可实现任意键退出。
可执行文件名.exe.manifest,和 exe 文件放在一起即可(详见)。
system(),那么当它在 MSYS2 命令行中运行时可以调用 Unix 命令例如 mkdir,但双击运行时调用的应该是 cmd。
Ctrl+Ins 复制,Shift+Ins 粘贴。
Ctrl+= 放大 Ctrl+- 缩小。滚轮也可以。
Alt+F3 搜索
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利