[英]How can I make a configure script using autoconf on MSYS/MINGW?
我正在嘗試在 Windows 10 中使用 IT++ 庫。為此,我需要使用 MSYS 上的 autoconf 從 IT++ 庫中提供的“configure.ac.in”文件制作一個“配置”腳本。 我遇到了這些錯誤:
Ahmad@AHMADTANHA /c/itpp-4.3.1 $ autoconf configure.ac.in /c/MinGW/bin/autoconf-2.68: line 501: /mingw/bin/autom4te-2.68: 沒有那個文件或目錄 /c/MinGW /bin/autoconf-2.68: line 501: exec: /mingw/bin/autom4te-2.68: 無法執行: 沒有那個文件或目錄
MSYS 又舊又慢,請使用 MSYS2。 你可以在這里下載: https : //sourceforge.net/projects/msys2/files/Base/
要使用它首先解壓縮文件(例如msys2-base-x86_64-20200903.tar.xz
),然后在msys64
(或msys32
)文件夾下運行autorebasebase1st.bat
並重新啟動。
重啟后啟動mingw64.exe
(或mingw32.exe
)並運行:
pacman -Syu --noconfirm
pacman -S --noconfirm git wget tar gzip autoconf automake make libtool patch unzip xz bison flex pkg-config
pacman -S --noconfirm mingw-w64-x86_64-gcc
(對於 32 位,最后一行應該是pacman -S --noconfirm mingw-w64-i686-gcc
)
退出外殼端再次打開它。 現在你應該有一個工作環境。
當我查看 IT++ 的源代碼時,我沒有看到文件configure.ac
或configure.am
,只有configure.ac.in
。 但是有一個文件CMakeLists.txt
這意味着該項目可能應該使用 CMake 進行配置。
作為一般規則,如果您可以通過使用更現代的構建系統(如 CMake 或 Ninja)來避免配置工具,那么您應該這樣做。 此外,CMake 支持 Ninja,這比make
快得多。
因此,我嘗試像這樣構建靜態並與 CMake 共享的 IT ++ 並且沒有問題:
INSTALLPREFIX=/usr/local
cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DITPP_SHARED_LIB:BOOL=OFF -DHTML_DOCS:BOOL=OFF -S. -Bbuild_static &&
ninja -Cbuild_static install/strip &&
cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DITPP_SHARED_LIB:BOOL=ON -DHTML_DOCS:BOOL=OFF -S. -Bbuild_shared &&
ninja -Cbuild_shared install/strip &&
echo Success
如果由於某種原因你仍然想使用make
而不是ninja
你可以用-G"MSYS Makefiles"
替換-GNinja
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.