libtool相关内容

如何使用CMake将我自己的.o文件与第三方静态库合并,以创建新的合并后的静态库?

我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li ..
发布时间:2022-04-08 20:05:51 其他开发

在没有 -fPIC 的情况下将静态库链接到共享库

我想将目标文件和静态库合并到一个共享库中,但静态库不应暴露,它只在进入共享库的目标文件中引用.我认为在这种情况下,我不需要使用 -fPIC 编译静态库,但我不知道如何告诉链接器我不会使用静态库中的符号这一事实.为了说明我的问题,请使用以下文件: 文件foo.cpp: #include "static.h"使用命名空间标准;字符串版本信息(){返回静态版本信息();} 文件static.c ..
发布时间:2022-01-23 21:11:03 C/C++开发

如何安装和使用 libtool 共享库(.lo 文件)?

所以在我运行 libtool 并从我的库源中取出 libfoo.lo 和 foo.o 文件后,我如何转换 libfoo.lo 文件转换成一个普通的 Linux 共享库,比如 libfoo.so.1.0.0 以便我可以在我的目标系统上安装并链接到它? 解决方案 从问题中提到的输出来看,您似乎使用 --mode=compile 模式运行了 libtool.您将需要使用 --mode=link ..
发布时间:2021-11-30 19:09:54 C/C++开发

使用 autotools 为共享库正确安装 config.h

我正在将使用 autotools 构建系统的 C++ 程序转换为使用共享库,介绍 libtool 的使用.大部分程序功能都放在共享库中,由主程序加载,以便将来其他程序可以访问公共代码. 在整个程序和库源中,自动标头生成的 config.h 与通常的宏一起使用: #if HAVE_CONFIG_H# 包含 #万一 在 configure.ac 中,我使用宏来生成它: AC_CONFIG_ ..
发布时间:2021-11-30 19:04:05 C/C++开发

Libtool 声称它在交叉编译期间不支持共享库

我正在尝试为运行 busybox 1.13 的 ARM 嵌入式机器构建 expat (2.0.0) XML 解析库,并且在 ./configure 期间,我收到错误: 正在检查 libtool 是否支持共享库... 否 我已经指定了我的 gcc、g++、ar、ranlib、strip 等,这些都可以通过配置工具找到,并且我已经运行了最新的 libtool(在撰写本文时为 2.4.2)在 Ubu ..
发布时间:2021-11-17 21:52:34 其他开发

使用 libtool 从共享库中加载重复的函数名

我正在尝试创建一个“调试"共享库(即 .so 或 .dll 文件),它调用另一个与调试库具有相同 C API 的“真实"共享库(在这种情况下,模拟PKCS#11 API).但是,我遇到了调试库的链接映射与真实库的链接映射发生冲突并导致调试库调用自己的函数而不是真实库中的相应函数的麻烦.我通过使用 POSIX dlmopen 命令找到了解决此问题的方法,但想了解是否可以使用 GNU 的 libtoo ..
发布时间:2021-07-23 20:19:21 C/C++开发

在没有-fPIC的情况下将静态库链接到共享库

我想将目标文件和静态库合并到共享库中,但是静态库不应公开,它仅在进入共享库的对象文件中被引用.我认为在这种情况下,我不需要使用 -fPIC 编译静态库,但是我不知道如何告诉链接器我不会使用静态库中的符号的事实.为了说明我的问题,请获取以下文件: 文件 foo.cpp : #include"static.h"使用命名空间std;字符串version_info(){返回static_vers ..
发布时间:2021-05-09 20:29:24 C/C++开发

GNU autotool:没有规则可作为目标

我在堆栈溢出中的第一个问题! 快速概述:我使用自动工具生成C程序.当我使用 make 命令时,遇到错误: 没有规则可将目标设置为`../lib_foo/libfoo.a',而`mistery_foo'则需要.停止. 我的问题的详细信息: 我正在做老师的作业,在该作业中,我应该使用GNU autotool 生成一个非常简单的C程序. 文件结构:/project:main,li ..
发布时间:2021-04-12 20:27:44 其他开发

如果lt_dlopen失败,如何获取更多信息?

我正在调用lt_dlopen并得到找不到通用文件的错误(翻译的errno文本).由于文件确实存在,因此我如何获得有关实际失败原因的更多信息. 这是一个加载C ++库的C ++程序.在同一程序中的其他地方,我使用相同的命令可以正常打开其他库,因此我担心它可能是该库特有的.我使用了ldd,并且满足了库的所有依赖项. 解决方案 我偶然发现了一些类似的作品: export LD_DEB ..
发布时间:2020-11-12 23:50:57 服务器开发

如何告诉Libtool使用C ++而不是C?

我正在研究 C ++库的Autools前端.看来Libtool正在将C源文件添加到项目中,并且在某些平台上造成了很多麻烦.我们认为它会导致无法解释的崩溃,例如来自GDB的消息“启动程序终止时,信号SIGKILL终止" . C源文件引起故障的原因有很多.首先,我们只查询CXXFLAGS并设置AM_CXXFLAGS;并且我们对CFLAGS或AM_CFLAGS不做任何事情.其次,C文件需要C ++ ..
发布时间:2020-09-15 01:29:42 C/C++开发

Libtool速度慢,是双重构建吗?

在我的项目中,将模块整理在子目录中以保持整洁. 我的项目目录层次结构: $ ls -R .: configure.in Makefile.am Makefile.cvs src ./src: log Makefile.am main.cpp ./src/log: log.cpp Makefile.am configure.i ..
发布时间:2020-09-15 01:27:17 其他开发

使用libtool e gdb

我正在开发一个使用GNU autotools的项目,因此为了使用gdb调试代码,我正在libtool中运行gdb: libtool --mode=execute gdbtui foobar 是否可以重新加载项目的修改版本而不必退出gdb/libtool并重新启动呢? 解决方案 libtool --mode=execute创建一个临时可执行文件,该文件将传递给gdb.重建时将删除此 ..
发布时间:2020-09-15 01:24:41 其他开发

使用Libtool强制将静态库链接到共享库中

我有一个库( libfoo ),该库使用libtool 编译为两个对象:libfoo.a和libfoo.so. 我还必须使用libtool 创建另一个库( libbar ),它将是一个包含所有libfoo代码的单个共享库(libbar.so). 为此,我必须强制 libbar 链接到 libfoo.a ,而不是libfoo.so. 我处于 autotools 环境中,因此必须使用 ..
发布时间:2020-09-15 01:24:39 其他开发