Macos 已安装libtool,但找不到libtoolize

Macos 已安装libtool,但找不到libtoolize,macos,libxml2,autotools,autoconf,libtool,Macos,Libxml2,Autotools,Autoconf,Libtool,我试图在mac上从源代码构建libxml2 所以我使用mac端口安装了autoconf libtool和automake autoconf和automake似乎工作正常 我尝试先运行autogen.sh libtoolize——版本 -bash: libtoolize: command not found 我试着(再次)跑步 我试着 locate libtool 而且似乎安装得很好 /Applications/Xcode.app/Contents/Developer/Platforms/iP

我试图在mac上从源代码构建libxml2

所以我使用mac端口安装了autoconf libtool和automake

autoconf和automake似乎工作正常

我尝试先运行autogen.sh

libtoolize——版本

-bash: libtoolize: command not found
我试着(再次)跑步

我试着

locate libtool
而且似乎安装得很好

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1/libtool.1
/Applications/Xcode.app/Contents/Developer/usr/bin/libtool
/Applications/Xcode.app/Contents/Developer/usr/share/man/man1/libtool.1
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/cross/mipsel-linux-binutils/files/110-uclibc-libtool-conf.patch
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/Portfile
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/files
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool/files/ltmain.m4sh-allow-clang-stdlib.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool-devel
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtool-devel/Portfile
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/openslp/files/libtool-tags.patch
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/t1lib/files/patch-libtool-tag.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/print/pdflib/files/patch-libtool.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/security/steghide/files/libtool-tag.diff
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/www/apache2/files/libtool-tag.diff
/usr/bin/libtool
/usr/lib/php/build/libtool.m4
/usr/share/apr-1/build-1/libtool
/usr/share/man/man1/libtool.1

如何使libtoolize工作?

您通常需要使用
glibtool
glibtoolize
,因为
libtool
已经作为二进制工具存在于OS X上,用于创建Mach-O动态库。因此,这就是MacPorts使用程序名转换安装它的方式,尽管端口本身仍然命名为“libtool”

一些
autogen.sh
脚本(或其等效脚本)将使用
LIBTOOL
/
LIBTOOLIZE
环境变量。我自己的
autogen.sh
脚本中有一行:

case `uname` in Darwin*) glibtoolize --copy ;;
  *) libtoolize --copy ;; esac
您可能需要或不需要
--copy
标志



注意:如果已使用MacPorts安装自动工具,则正确写入的
configure.ac
Makefile.am
文件应只需要
autoeconf-fvi
。它应该按预期调用
glibtoolize
等。否则,一些软件包将分发一个
autogen.sh
或类似的脚本。

我希望我的答案不是太天真。我是OSX的不速之客


install libtool为我解决了一个类似的问题。

Brew的一个替代方案是使用
macports
。例如:

$ port info libtool
libtool @2.4.6_5 (devel, sysutils)
Variants:             universal

Description:          GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.
Homepage:             https://www.gnu.org/software/libtool

Build Dependencies:   xattr
Platforms:            darwin, freebsd
License:              libtool
Maintainers:          Email: larryv@macports.org, GitHub: larryv
然后像Brew一样,您可以:

$ sudo port install libtool
Password:
--->  Fetching archive for libtool
--->  Attempting to fetch libtool-2.4.6_5.darwin_15.x86_64.tbz2 from https://packages.macports.org/libtool
--->  Attempting to fetch libtool-2.4.6_5.darwin_15.x86_64.tbz2.rmd160 from https://packages.macports.org/libtool
--->  Installing libtool @2.4.6_5
--->  Activating libtool @2.4.6_5
--->  Cleaning libtool
--->  Updating database of binaries
--->  Updating database of C++ stdlib usage
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.
然后你可以查一下它住在哪里。。。顺便说一句,您可以将glibtoolize软链接到libtoolize。为了我的需要,两个都可以

$ which glibtoolize
/opt/local/bin/glibtoolize

当您使用brew安装
libtool
时,将
libtoolize
作为
glibtoolize
安装为几个线程。这可以通过以下方式实现:;安装它,然后为libtoolize创建软链接:

brew install libtool
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize

autogen.sh通常位于哪里?@Erik-通常位于顶级目录中,并通过在顶级
Makefile.am
中添加
EXTRA\u DIST=autogen.sh
而包含在发行版中。有时它的名称类似于
bootstrap.sh
。通常,开发人员对
autoreconf
提供的默认值很满意。只需将
libtoolize
替换为
glibtoolize
就可以了。该公式适用于那些不想使用自制软件但不介意使用某些指针的人如果您安装了其他工具,如
imagemagick
,您可能会发现brew警告:
为了防止与苹果自己的libtool发生冲突,我们预先添加了一个“g”,因此,您改为:
glibtool
glibtoolizeThere在使用brew安装libtool时有一个问题:您可能会遇到如下错误:“/usr/local/bin/glibtoolize:line 406:/usr/local/Library/ENV/4.3/sed:没有这样的文件或目录”。对我有效的解决方案是“brew取消libtool的链接”(这可能不是必需的),然后是“brew卸载libtool和brew安装libtool”(ebothmann在上的评论)。
brew install libtool
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize