我试图在 Windows 11 上的 MYSY2 中使用源代码本地编译构建 emacs,第一次尝试时,在运行 ./configure 时收到了一些警告,尽管如此,我还是尝试继续,然后调用了 make 和 make install,就我所见,我没有发现任何错误,但该过程没有在任何地方生成任何可执行文件。
然后,在使用
make distclean
清理了之前的尝试后,我再次尝试,但现在看来必要的程序已经不在 $PATH 中了,因为现在尝试运行 ./configure 会出现找不到任何编译器的错误。为了解决这个问题,我简单地输入了
packman -S gcc
之后,./configure 找到了 gcc。/但运行 pacman -S mingw-w64-x86_64-imagemagick,却发现我已经安装了 imagemagick。
现在它给出了一个错误,说要使用本地编译构建,我需要 zlib,但通过
pacman -S mingw-w64-x86_64-zlib
检查,它也说我已经安装了 zlib,它一直给出错误,然后我决定运行
packman -S zlib
,它在安装或重新安装软件包时起了作用(我不确定),但我一直收到关于缺少 zlib 库的错误。
由此看来,已安装的库和程序似乎已从 $PATH 中删除。事实上,再看看我得到的结果,我似乎应该使用 mingw-w64-x86_64-gcc 软件包,而不是简单的 gcc。在第一次使用 ./configure 之前,我就已经安装了 mingw-w64-x86_64-gcc,当时我正在设置构建 emacs 所需的工具(就像我安装 mingw-w64-x86_64-zlib 和 mingw-w64-x86_64-imagemagick 一样)。事实上,在运行 ./configure 时,它会检查 mingw-w64-x86_64-gcc,但没有找到,只找到了我在运行 make distclean 后安装的 gcc。
如何才能让 ./configure 找到制作 MAKEFILE 所需的程序和库呢?
看起来你在 MSYS2 中构建 Emacs 时遇到了路径和软件包管理方面的问题。 以下是解决这些问题的步骤:
1. MSYS2 环境问题
-
路径问题: 你的问题很可能是因为 MSYS2 的 shell 没有正确设置
PATH
环境变量,导致无法找到已安装的程序。- 每次启动 MSYS2 shell 时,都要确保使用正确的快捷方式(例如 "MSYS2 MinGW 64-bit"),以便加载正确的环境变量。
-
在 MSYS2 shell 中,运行
echo $PATH
,确认路径中包含了/mingw64/bin
等必要目录。如果没有,可以手动添加到.bashrc
或.zshrc
文件中:bash echo 'export PATH=$PATH:/mingw64/bin' >> ~/.bashrc source ~/.bashrc
-
包管理器: 你在使用
packman
而不是pacman
。确保使用正确的命令来管理软件包。
2. 重新安装关键软件包
-
为了确保所有必要的库和头文件都安装正确,建议重新安装以下软件包:
bash pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-zlib mingw-w64-x86_64-imagemagick make
-
确保安装了所有 Emacs 依赖的软件包。参考 Emacs 的
INSTALL
文件获取完整的依赖列表。
3. 配置和构建 Emacs
-
再次运行
./configure
。这次它应该可以找到所有必要的程序和库。 -
如果
./configure
成功,运行make
进行编译,然后运行make install
进行安装。
其他建议:
-
在开始构建之前,请确保你使用的是最新版本的 MSYS2 以及所有软件包。运行
pacman -Syu
进行更新。 - 如果问题仍然存在,尝试参考 Emacs 官方网站或社区论坛寻求帮助。
希望这些步骤能帮助你在 MSYS2 上成功构建 Emacs!
标签:windows,makefile,emacs,compilation,msys2 From: 78565671