标签: libtool

什么是libtool的.la文件?

libtool的.la文件是什么?它们如何与共享对象一起使用?

linux libtool libraries

143
推荐指数
3
解决办法
10万
查看次数

libtool版本不匹配错误

在Ubuntu 10.04上使用kdevelop 3.5构建我的应用程序时,我收到以下错误:

libtool: Version mismatch error. This is libtool 2.2.6 Debian-2.2.6a-4, but the
libtool: definition of this LT_INIT comes from libtool 2.2.6b.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 Debian-2.2.6a-4
libtool: and run autoconf again.
make[2]: *** [wktools4] Error 63
make[2]: Target `all' not remade because of errors.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*** Exited with status: 2 ***
Run Code Online (Sandbox Code Playgroud)

我在哪里可以获得所需的libtool版本,或者如何重新创建aclocal.m4?

autotools libtool

72
推荐指数
3
解决办法
7万
查看次数

安装了libtool但找不到libtoolize

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

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

autoconf和automake似乎正如预期的那样正常工作.

我首先尝试运行autogen.sh.

不幸的是,libtoolize --version给出了

-bash: libtoolize: command not found
Run Code Online (Sandbox Code Playgroud)

我尝试跑步(再次)

sudo port install libtool

--->  Cleaning libtool
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.
Run Code Online (Sandbox Code Playgroud)

我试试

locate libtool
Run Code Online (Sandbox Code Playgroud)

它似乎安装得很好

/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
Run Code Online (Sandbox Code Playgroud)

我如何让libtoolize工作?

macos autoconf autotools libxml2 libtool

34
推荐指数
3
解决办法
5万
查看次数

安装PCRE时出错

我正在尝试在我的Ubuntu 11.10服务器上安装PCRE.当我运行"make"命令时,我得到一个非常长的输出,它始终以此错误结束:

libtool: link: ( cd ".libs" && rm -f "libpcreposix.la" && ln -s "../libpcreposix.la" "libpcreposix.la" ) source='pcrecpp.cc' object='pcrecpp.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/bash ./depcomp \
        /bin/bash ./libtool --tag=CXX   --mode=compile  -DHAVE_CONFIG_H -I.      -c -o pcrecpp.lo pcrecpp.cc libtool: compile: unrecognized option `-DHAVE_CONFIG_H' libtool: compile: Try `libtool
--help' for more information. make[1]: *** [pcrecpp.lo] Error 1 make[1]: Leaving directory `/home/root/src/pcre/pcre-8.12' make:
*** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

我确实运行了"configure".有任何想法吗?

linux ubuntu gcc pcre libtool

27
推荐指数
5
解决办法
4万
查看次数

在非标准前缀中安装glib失败

我正在尝试在非标准前缀中安装glib,但运行时我得到以下内容make install:

/bin/sh ../libtool --mode=install /usr/bin/install -c libgthread-2.0.la '/root/build/lib'
libtool: install: error: cannot install `libgthread-2.0.la' to a directory not ending in /usr/local/lib
Run Code Online (Sandbox Code Playgroud)

必须在以/ usr/local/lib结尾的前缀中安装gthread的原因是什么?

install makefile glib libtool

27
推荐指数
1
解决办法
1万
查看次数

LDADD和LIBADD有什么区别?

我正在尝试设置一个使用libtool库和exectuable混合的automake项目,而且我很难熟悉automake文档,尤其是.与告诉编译器链接相关.

因此,有人可以解释之间的差异LDADDLIBADD

像:

  • 何时使用另一个,
  • 哪一个采用-lname_of_library样式值与直接文件名等.

每当我尝试阅读相关文档时,似乎它假定我知道我不知道的事情.

c++ automake libtool

25
推荐指数
2
解决办法
2万
查看次数

发现自动错误'./ltmain.sh'

我已经安装了mingw和msys mingw-get-setup.exe.我还安装了Autotools(autoconf,automake,m4,libtool)C:\/opt/autotools.

当我运行automake时,总会发生以下错误:

configure.ac:11: error: required file './ltmain.sh' not found
Run Code Online (Sandbox Code Playgroud)

如果我ltmain.sh从libtool的已安装树中复制,执行将正常完成.

如何在ltmain.sh不复制的情况下将automake配置为查找?

c automake autotools libtool mingw32

22
推荐指数
1
解决办法
2万
查看次数

使用autotools/libtool构建.so模块,不安装.la和.a变体

如何在没有.la和.a库的情况下使用autotools/libtool构建和安装.so模块也安装到--prefix路径中?

目前我正在使用以下Makefile.am:

lib_LTLIBRARIES = libCurlDownloader.la
libCurlDownloader_la_SOURCES = Curl.cpp
libCurlDownloader_la_LDFLAGS = -module -avoid-version
Run Code Online (Sandbox Code Playgroud)

它有效,但除了libCurlDownloader.so之外,它还安装了libCurlDownloader.la和libCurlDownloader.a,这是不可取的.

更新#1

通过使用任何一个都可以使.a无法生成

./configure --disable-static
Run Code Online (Sandbox Code Playgroud)

要么

AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
Run Code Online (Sandbox Code Playgroud)

在configure.ac中

但是仍然存在如下问题:如何在安装.so时将.la安装到安装--prefix中.

更新#2

可以从安装--prefix中删除.la文件

install-exec-hook: find $(DESTDIR)$(libdir) -type f -name \*.la -delete
Run Code Online (Sandbox Code Playgroud)

module autotools libtool

16
推荐指数
1
解决办法
4318
查看次数

在构建期间将静态库链接到共享库?

我在使用GCC/Linux构建共享库时遇到问题.目前这个共享库是使用GCC/libtool选项"-shared"创建的,一切都很好.

现在还有两个额外的静态库(.a文件)必须添加到此共享库中,因为它们提供了共享库所需的一些功能.使用选项"-l"添加这些静态库没有帮助,之后它们不是.so文件的一部分.

那么我如何强制GCC/libtool真正将这些静态库的代码添加到共享库中呢?

谢谢!

linux gcc shared-libraries static-libraries libtool

16
推荐指数
1
解决办法
3万
查看次数

为什么autoconf/automake项目会链接到已安装的库而不是本地开发库?

我正在创建一个libgdata包含一些测试和未安装程序的库.我遇到的问题是,一旦我安装了一次库,程序似乎就会链接到已安装的版本,而不再是本地版本../src/libgdata.la.

什么可能导致这个?我做错了什么吗?

这是我的test/Makefile.am样子:

INCLUDES = -I$(top_srcdir)/src/ -I$(top_srcdir)/test/

# libapiutil contains all of our dependencies!
AM_CXXFLAGS = $(APIUTIL_CFLAGS)
AM_LDFLAGS = $(APIUTIL_LIBS)

LDADD = $(top_builddir)/src/libgdata.la

noinst_PROGRAMS = gdatacalendar gdatayoutube

gdatacalendar_SOURCES = gdatacalendar.cc

gdatayoutube_SOURCES = gdatayoutube.cc

TESTS = check_bare

check_PROGRAMS = $(TESTS)

check_bare_SOURCES = check_bare.cc
Run Code Online (Sandbox Code Playgroud)

(libapiutil是另一个库,它有一些帮助程序来处理libcurl和libxml ++)

因此,例如,如果我在没有安装任何东西的情况下运行测试,一切正常.我可以在本地进行更改,并立即通过这些程序获取.

如果我安装了这个程序包,这些程序就会编译(看起来它实际上看起来本身就是标题),但是一旦我运行该程序就会抱怨缺少符号.

据我所知,它基于make输出链接到新构建的库(../src/libgdata.la),所以我不确定为什么会发生这种情况.如果我删除已安装的文件,那么对src/*的本地更改就可以了.

我在下面包含了gdatacalendar的make输出.

g++ -DHAVE_CONFIG_H -I. -I.. -I../src/ -I../test/   -I/home/altern8/workspaces/4355/dev-install/include -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -g -O2 -MT gdatacalendar.o -MD -MP -MF .deps/gdatacalendar.Tpo …
Run Code Online (Sandbox Code Playgroud)

msbuild automake autoconf build libtool

14
推荐指数
1
解决办法
1611
查看次数