问题标签 [libtool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2102 浏览

c++ - 简单的 libtool 替代方案?

对老式 Makefile 非常满意,我正在寻找 libtool 的简单替代品。我不想切换到 automake,当我尝试直接使用 libtool 时,我一直遇到问题。最新的一个是“不受支持的硬编码属性”,我厌倦了缺乏完整的文档来告诉我这次出了什么问题......

我只想编译一堆带有正确标志的 .o 文件,然后将它们链接到一个共享库中,这样它就可以在尽可能多的平台上运行。有没有什么东西可以做到这一点,而不是强迫我同时切换所有其他工具?

0 投票
3 回答
2314 浏览

compilation - Lenny AMD64 上的 Lighttpd 1.4.26 编译失败

昨天我尝试在 Debian Lenny ( AMD64 ) 上编译 Lighttpd 1.4.26 + mod_h264 但它失败了。我得到了这些错误:

在对 IRC、Google 和邮件列表 Libtools 进行大量研究之后,编译它似乎并不是最新的。Libtootl 2.2+ 不在 Lenny 上 AMD64 的后向移植中……有人知道这个问题或解决方案吗?谢谢 !

0 投票
1 回答
1025 浏览

linker - ld.exe 的 autoconf libtool 库链接器路径不正确(需要驱动器号)

我使用 autoconf,当目标是 mingw 时,我使用的是 -mno-cygwin 标志。这已被删除,所以我正在尝试使用 mingw 工具链。问题是链接器没有找到我的库

要使用 mingw 链接器从命令行链接它,-L路径需要驱动器号,即

作品。-L路径是从makefile.am's生成的

但是我找不到如何设置top_builddir相对路径或以驱动器号开头(我的 autoconf 技能很弱)。

作为一个临时的“解决方案”,我删除了 libtool 的使用。我可以破解$(DRIVE_LETTER)每个 -L 选项的前面,但我想找到更好的东西。

0 投票
1 回答
1840 浏览

macos - 在 OSX 10.6 上编译 libnoise

有没有人为 MacOS X 10.6编译或知道预编译的libnoise ?由于 libtool 问题,它在此处无法立即编译。

0 投票
2 回答
455 浏览

c++ - 依赖于其他库的库的 Libtool 版本控制

我有一个在核心应用程序及其界面中使用 Boost 和 CgiCC的框架。

我应该如何对库二进制接口(又名 libtool -version-info)进行版本控制?

当我进行各种更改时,我可以毫无问题地跟踪库本身的更改。我很清楚我应该如何版本。

但...

Boost 和 CgiCC 库都没有提供任何向后兼容的 API/ABI,而且我的库可能与 Boost 和 CgiCC 的任意版本链接,所以我不能提供关于接口的任何承诺,所以我不能真正指定-version-info,因为即使是相同的针对不同版本的 Boost 和 CgiCC 编译的库将不兼容。

所以我该怎么做?我应该如何版本库?

我知道我不应该首先依赖 Boost 和 CgiCC 接口,但这是我迄今为止对现有稳定版本的了解。这个问题在下一个主要版本中得到解决,但我仍然拥有并希望保持当前版本,因为它非常有价值。

0 投票
3 回答
1908 浏览

c++ - 在动态库中包装不同版本的静态库

在我的项目中,依赖于libsomething来自第 3 方的静态库(从现在开始调用)。最近,libsomething已在另一个版本中可用。我的任务是为我的软件提供对旧版本和新版本的支持。在任何给定时间在运行时只使用一个版本libsomething,但是应该在程序运行之间配置哪个版本。

我在 WinXP 上使用 MSVC2005,次要目标是准备切换到 Linux 和 GCC。

由于两个版本libsomething都使用相同的符号,因此将它们都链接到我的可执行文件是不可能的,因为两个版本的符号将在链接时发生冲突。

虽然我可以创建两个可执行文件(一个链接旧版本,另一个使用新版本),但我无法决定在最终部署环境中调用哪个可执行文件(遗留原因)。

我想出了为每个版本创建一个动态库包装器libsomething并在运行时根据某些配置文件链接它们的想法。对于 MSCV,这意味着要使用LoadLibrary(),GetProcAddress()等,而在 Linux 上我必须使用dlopen()and dlsym()

我知道 using libtool(ie, libtldl) 正在包装此平台依赖性以使用共享库。这是一条合适的路径吗?有更好的(或者至少是不同的)方法吗?libtldl是否存在开源的替代方案?

0 投票
10 回答
75737 浏览

autotools - libtool 版本不匹配错误

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

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

0 投票
3 回答
5773 浏览

c - 转换为 libtool 时 automake 和 autoconf 找不到 libtool

我正在尝试将 libcs​​v 转换为使用 libtool,这样我就可以在 mac os x 上使用它而不会破坏 makefile。当我尝试运行从工具生成的 makefile 时,出现以下错误:

我正在运行 OS X 10.5。因此,经过一番搜寻后,我注意到生成的 makefile 有一个空的 libtool var:

如果我将 LIBTOOL 设置为 libtool,那么一切都很好。我假设我在下面的 autoconf 或 automake 文件中犯了一个错误:

如果有任何帮助,这里是 config.log 的一部分:

那么有谁知道我做错了什么?

提前致谢。

0 投票
2 回答
1062 浏览

c++ - dynamic_cast 来自 lt_dlopen(libtool) 加载的共享库的接口不起作用

这是关于我的程序中的插件功能。我需要插件中的 C++ 类(和对象)可以由主模块通过接口使用。接口继承如下:

然后我在插件中有一个类来实现这样的接口:

插件中的创建者定义如下:

最后,我在主应用程序中使用了创建者,以便像这样使用插件:

问题是 dynamic_cast 总是失败并且 pAuto 最终为零。但是 WIN32 版本工作正常。问题发生在 linux 上 autoconf2.61 automake1.10.1 make3.81 g++4.4.4 libtool1.5.26 。我对linux编程的经验较少,希望在这里得到帮助。谢谢!

如有必要,可以在 Sourceforge 上获取完整的源代码:svn co https://rdwtwdb.svn.sourceforge.net/svnroot/rdwtwdb rdwtwdb

0 投票
1 回答
726 浏览

build-process - 使用 automake/Makefile.am 生成 IDL 实体

对于那些不熟悉 IDL(接口描述语言)的人来说,它抽象了数据描述以供跨平台(java、c、c++ 等)使用。我的项目具有从 Foo.idl 生成的依赖项 Foo.c、Foo.h、FooHelper.c 和 FooHelper.h。如何在 Foo.idl 更改时运行任意命令,但在构建过程中仍包含 Foo.c、FooHelper.c?

我目前的尝试向 Makefile.am 添加了一条规则——希望将规则复制到生成的 Makefile 中。

我努力了:

然后将 Foo.idl 添加到 my_program_SOURCES 但它在构建时不运行 the_generate_command。

我已经成功地从 IDL 生成

但它不会将 Foo.c、FooHelper.c 添加到编译过程中,因此它们永远不会被构建,只是由 the_generate_command 生成!

所有代码(包括 idl)都在 $PROJECT_DIR/src 中。