如何在 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
我正在尝试在 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