windows 下使用 msys2 使用gcc进行编译 libiconv

cygwin、MinGW64、MSYS 的区别

cygwin 没有一个好用的包管理工具,无论是官方的 setup.exe,还是第三方的 apt-cyg,像依赖什么的都得额外按照,而且不支持升级操作。另外 cygwin 里面很多软件还是比较老的。

MinGW64(Minimalist GNU for Windows)用于在 Windows 上编译基于GCC的应用程序。他主要提供了针对 win32 应用的 GCC、GNU binutils 等工具,以及对等于 Windows SDK(的子集)的头文件和用于 MinGW 版本的 linker 的库文件(so【动态链接库】、a【静态链接库】 等,而不是 VC 的lib)。MinGW 是用于进行 Windows 应用开发的 GNU 工具链(开发环境),它的编译产物一般是原生 Windows 应用。(mingw 的命令行工具的命令都是基于 windows 的!!!)

MSYS 是用于辅助 Windows 版 MinGW 进行命令行开发的配套软件包,提供了部分 Unix 工具以使得 MinGW 的工具使用起来方便一些(MinGW需要在MSYS内部通过 pacman 安装)

下载 msys2

http://www.msys2.org/

msys2使用pacman作为包管理器。同时,pacman也是ArchLinux上的包管理器。
所以我们使用 pacman 命令安装编译工具链
-S 表示保存,-Q 表示查询

pacman -S gcc  
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-i686-toolchain
pacman -S base-devel
pacman -S vim
pacman -S yasm
pacman -S nasm

下载 libiconv

http://www.gnu.org/software/libiconv/

编译 libiconv

./configure --prefix=/usr/local
make
make install

也可以连写
./configure && make && make install

编译结果会放在 configure 指定的路径。如果默认不写–prefix路径的话,会自动安装到/usr/local下面。

默认会在 /usr/local/bin 下生成 libiconv.exe 并在 /usr/local/lib 目录下生成 .a 的静态链接库。

通过 ls -l 命令可以查看文件的具体信息。

在这里插入图片描述在这里插入图片描述通过 ./configure -h 可以查看配置的帮助文档
在这里插入图片描述

这里编译 libiconv 只是做一个编译的试验,msys2 已经自带了 libiconv, 通过 whereis 命令可以查看到该位置
在这里插入图片描述
从时间上可以看出 libiconv 老早就被加到 msys2 里面了
在这里插入图片描述

将编译好的成果拷贝出来

使用默认挂载的目录

输入 mount 可以查看当前已挂在的目录
在这里插入图片描述第一个是windows 下的目录,被映射到第二个参数上面了。

使用自定义挂载的目录

  1. vim /etc/fstab,按 i 键进入编辑模式
  2. C:/Users/Public/Documents /windoc ntfs binary,noacl,auto 1 1
  3. ESC 退出编辑模式,然后 :wq 保存文件

这里是将 windows 目录下的 C:\Users\Public\Documents 目录映射到 msys2 的 /windoc目录下
在这里插入图片描述fstab是用来添加启动时自动挂载的目录的,所以必须要重启才会生效。可以输入 exit 退出程序,然后重新打开

在这里插入图片描述

发布了471 篇原创文章 · 获赞 565 · 访问量 188万+

猜你喜欢

转载自blog.csdn.net/chy555chy/article/details/89189455