在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?
我试图在我的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工作?
我正在尝试在我的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".有任何想法吗?
我正在尝试在非标准前缀中安装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的原因是什么?
我正在尝试设置一个使用libtool库和exectuable混合的automake项目,而且我很难熟悉automake文档,尤其是.与告诉编译器链接相关.
因此,有人可以解释之间的差异LDADD和LIBADD?
像:
-lname_of_library样式值与直接文件名等.每当我尝试阅读相关文档时,似乎它假定我知道我不知道的事情.
我已经安装了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配置为查找?
如何在没有.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) 我在使用GCC/Linux构建共享库时遇到问题.目前这个共享库是使用GCC/libtool选项"-shared"创建的,一切都很好.
现在还有两个额外的静态库(.a文件)必须添加到此共享库中,因为它们提供了共享库所需的一些功能.使用选项"-l"添加这些静态库没有帮助,之后它们不是.so文件的一部分.
那么我如何强制GCC/libtool真正将这些静态库的代码添加到共享库中呢?
谢谢!
我正在创建一个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)