如何在 MSYS2 中修复 ./configure?

How to fix ./configure in MSYS2?

我正在尝试在 Windows 10 上的 MSYS2 shell 中构建 libxc-4.3.4。我已经安装了最新版本的 MSYS2 (msys2-x86_64-20220319.exe) 并按照安装说明进行操作。我已经使用

安装了构建工具
pacman -S --needed base-devel mingw-w64-x86_64-toolchain autoconf

我已经在 Linux 台机器上安装了数十次 libxc。第一步是

./configure --prefix /somewhere

但是在 MSYS2 中我得到

$ ./configure --prefix $PWD/../libxc
bash: ./configure: No such file or directory

我怎样才能完成这项工作?

MSYS2 先决条件

首先确保 MSYS2 具有所有需要的程序。

在MSYS2中shell首先更新包管理器信息:

pacman -Syu --noconfirm

然后安装你需要的包。我至少会推荐这些:

pacman -S --noconfirm autoconf autoconf-archive automake make libtool pkg-config

项目来源

接下来你应该确保你所在的文件夹确实有一个配置脚本:

ls -l configure

现在很多项目都在转向更高效的构建系统,如 CMake 或 Meson。 我通常在项目源文件夹中使用以下命令来检查几个构建系统:

ls -ld configure* m4 CMakeLists.txt cmake Makefile GNUmakefile setup.py scons SConscript SConstruct meson.build meson_options.txt *.pro *.proj *.sln BUILD.gn .gn 2> /dev/null

构建 libxc

对于 libxc 项目,我看到有一个 CMakeLists.txt 文件和一个 configure.ac 文件。 因此,您应该考虑使用 CMake 或生成 configure 文件:

touch README ChangeLog
autoreconf -f -i -I m4 

我刚刚尝试使用 CMake 和 Ninja 在 MSYS2 中构建 libxc,并且成功了:

# set the line below to the desired install location
INSTALLPREFIX=D:\Prog\changeme

# build static library
cmake -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DENABLE_PYTHON:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -S. -Bbuild_static &&
 ninja -Cbuild_static install/strip &&
 echo SUCCESS

# build shared library
cmake -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DENABLE_PYTHON:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -S. -Bbuild_shared &&
 ninja -Cbuild_shared install/strip &&
 echo SUCCESS