ld 链接问题:/usr/bin/ld: 找不到 [libraryname]

2024-03-24

我使用 Qmake 在 Ubuntu 9.10 上构建共享库

此共享库 (A) 依赖于另一个共享库 (B)。

B项目已成功建设。

在项目 A 的 .pro 文件中,我的 LIBS 变量如下所示:

LIBS += -L../datelib/bin -llibdatelib_release.so.1.0.0

(我使用了完整的 shlib 名称,因为库版本不同。)

无论如何,当我尝试构建项目 A 时,它在链接阶段中断,并打印错误消息:

/usr/bin/ld: cannot find -llibdatelib_release.so.1.0.0
collect2: ld returned 1 exit status
make[1]: ***[bin/libprojecta_release.so.6.0.0] Error 1
make ***[release] Error 2
Exited with code 2

从错误信息来看,我以为ld在抱怨找不到libdatelib文件,所以我手动将其复制到/usr/lib/

但是,这并没有解决问题,并且我收到了相同的错误消息。

有人知道如何解决这个问题吗?

[Edit]

我对使用 gcc 进行构建还很陌生。我知道如何创建符号链接,但是我应该为 lnk 命令使用哪些路径?我要链接的文件位于 /home/username/work/cppdev/datelib/bin 中。

另外,我使用的构建系统(qmake)会自动创建符号链接作为构建的一部分,因此我的 /home/username/work/cppdev/datelib/bin 文件夹中已经有以下文件:

  • libdatelib_release.so(符号链接)
  • lib datelib_release.so.1(符号链接)
  • lib datelib_release.so.1.0(符号链接)
  • libdatelib_release.so.1.0.0(共享库)

我可能不得不问另一个问题来解释为什么有这么多符号链接(有什么意义?),以及为什么我不能直接链接到共享库,而必须通过符号链接。我读过一些在线文档,但到目前为止我所看到的似乎更像是格言/传统,而不是实际的技术原因为什么在 Linux 上链接时需要这种抽象级别。


你不能那样使用 -l 。 -l 只能通过 -lFOO 查找名称类似于 libFOO.so 的内容。如果您想在构建中像这样指定版本号,则需要一个不带版本号的符号链接。

就像是:

ln -s /the/path/to/the/libthing.so.1.0.0 /the/path/to/the/libthing.so

现在 -lthing 可以工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ld 链接问题:/usr/bin/ld: 找不到 [libraryname] 的相关文章

  • virtualenv ImportError:没有名为 urllib3 的模块

    我在ubuntu上安装了virtualenv 但是 当我尝试创建 virtualenv 时 出现错误 我的 Zenv 文件夹不包含 activate 我该如何修复它 我会经常这样做 这是我第一次收到此错误 ubuntu ip 172 31
  • 如何在 Ubuntu 的 headless chrome 中启用 WebGL?

    如何在 Ubuntu 14 的 headless chrome 中启用 webgl 或安装 webgl 我尝试安装 libosmesa6 但这没有帮助 有人可以指出我正确的方向吗 我想使用 webgl 来处理无头 chrome 和 sele
  • 对“__divdi3”的未定义引用

    在链接一些对整数类型执行除法和模运算的代码时long long我收到以下两个错误 util c text 0x1af undefined reference to divdi3 util c text 0x1ef undefined ref
  • 无法在 mac osx 上的 QT 中创建新项目

    过去几天我一直坚持这个问题 我已经安装了 QT 4 8 并且也安装了库 但是当我开始创建一个新项目时 我只能选择使用 CMake 创建一个普通的 C 项目 我没有使用自动 qmake 的选项 我不知道为什么 如果有人可以帮忙 我们将不胜感激
  • 在 ubuntu 上使用 Kurento 安装错误

    我已经浏览了 Stackoverflow 上的所有 Kurento 问题 之前似乎没有出现过这个错误 我已经根据安装指南安装了 Kurento 媒体服务器和 java 客户端示例 我正在运行媒体服务器 当我去运行客户端应用程序时 问题就出现
  • 如何解决链接时 __gcov_init 未定义的引用问题

    我现在从事C代码覆盖率研究 遇到以下问题 GCC版本4 4 6 添加了编译器标志CFLAGS coverage和链接器选项LDFLAGS coverage or LOCAL LDLIBS coverage并得到错误 undefined re
  • 在不同的翻译单元中启动全局变量(涉及链接器)

    最近在复习C 这是我的问题 请参阅中的代码file1 cpp and file2 cpp 文件1 cpp int x1 1 int y1 x1 2 文件2 cpp include necessary headers extern int y
  • git 忽略文件模式配置不起作用

    我在 ubuntu Linux 服务器上使用 gitolite git 服务器 我使用了一个钩子 它将在每次推送时调用并更新服务器的目录 其中包括实时站点的源代码 现在 每当我在本地电脑上更改某些内容并将更改推送到服务器时 都会调用挂钩并且
  • 为 ARM 交叉编译 zlib

    我尝试为arm poky linux gnueabi交叉编译zlib 但启动 make 时出现错误 zlib 1 2 11 AR HOST ar CC HOST gcc RANLIB HOST ranlib configure prefix
  • gcc 4.5 中在链接方面引入的更改?

    我有一个项目生成一个共享库 该库与另一个共享库链接 当我用 gcc 4 4 编译并链接它时 一切正常 没有编译时警告或错误 没有链接时间警告或错误并且 ldd libmyproject so正确报告与其他共享库的依赖关系 另一方面 当我用
  • Ubuntu DEB 安装程序使所有 Java 应用程序具有相同的图标

    我已经为基于 Debian 的系统创建了 Java 应用程序的 DEB 安装程序 在我的 DEB 包中 我使用 desktop 文件 如下所示 Desktop Entry Encoding UTF 8 Version version Typ
  • 如何在 ubuntu 20 中安装旧版本的 gcc -3 或 gcc-4

    我正在尝试安装旧版本的 gcc 4enter code here对于我的ubuntu创建构建目录 mkdir gcc build cd gcc build 下载源文件 wgethttp www netgull com gcc release
  • 即使没有任何更改,Makefile 也始终不是最新的

    我有一个包含两个文件夹的目录 src and binmakefile 位于根目录 即使没有更改 此 makefile 也会持续编译 不是最新的 我在这个 makefile 中遗漏了什么吗 all make a b a src a cpp g
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 如何在ubuntu服务器上安装android SDK

    我在 ubuntu 服务器中有一个 React Native 项目 我想构建一个用于生产的 Android 应用程序 为此 我首先必须生成 Gradle Wrapper 文件 因此我在中运行此命令android目录 gradle wrapp
  • 限制 SFTP 用户只能访问主目录

    我正在尝试在 EC2 ubuntu 服务器上设置客户端 SFTP 空间 访问权限仅限于该用户的主目录 关于此的其他主题只有大约六千个 而且我在其他选项卡中打开了其中的大多数主题 这看起来很简单 我已经搞定了 sudo groupadd lo
  • 当我已经在Ubuntu上安装了nodejs 8时,还可以安装NVM吗?

    我已经安装了nodejs 8 我无法使用角度1运行karma测试 正如Karma官方网站上指定的那样Note Karma currently works on Node js 0 10 0 12 x 4 x 5 x 6 x and 7 x
  • Makefile 头依赖项

    我是使用 make 的新手 并且一直在通过以下方式学习基础知识本教程 http www cs colby edu maxwell courses tutorials maketutor 这是本教程中的最后一个 makefile 示例 IDI
  • buildozer android NDK 未下载 Ubuntu

    我使用的是 Ubuntu 16 04 LTS 操作系统 我已经在 python2 和 python3 中安装了 buildozer android sdk 已安装 但 buildozer 在下载 android NDK 时显示错误 请帮我解
  • VS Code 不会构建具有多个 .cpp 源文件的 C++ 程序

    请注意 我在 Ubuntu 17 10 上使用 VS Code 并使用 GCC 编译器 我在构建一个使用附加 cpp 文件的简单程序时遇到问题 我可能在这里遗漏了一些明显的东西 因为我对编程相当陌生 但我会解释到目前为止我所做的事情 这阻止

随机推荐

  • 如何在“表格列表”中仅显示一次表格标题,以便将表格拆分为多个页面

    我正在使用 R 包 xtable and knitr 和乳胶包 longtable and hyperref 准备一份文件 我的一张桌子很长并且分成多页 事实证明 表列表 显示了该表出现的每个页码 但所有超链接都将我带到了该表的开头 我的问
  • CSS Sprites 在 IE 中不起作用[8/7/6]

    我正在尝试 CSS 使用精灵来动画我的风险矩阵 它在 Firefox 和 Chrome 中工作得很好 但图像不会显示在 IE 中 代码如下 不想将整个内容粘贴到此处 但摘录显示了模式 dl dd a a dd dd a a dd dl
  • 隐藏文件夹 C# [重复]

    这个问题在这里已经有答案了 可能的重复 C 获取不包括隐藏文件的文件列表 https stackoverflow com questions 2418270 c get a list of files excluding those tha
  • android 背景重复-y

    我有一个图像 我想将其放置在右侧并在 y 轴上重复它 HTML 中类似于 背景 url img png 右重复 y 在android中可以做到这一点吗 当我将此位图设置为背景时 它不在右侧
  • 检查 FTP 服务器上的可用空间

    我正在运行一个构建脚本 其中三个可执行文件 每个 100mb 被上传到 FTP 服务器 由于 FTP 服务器空间问题 第一次上传可能会失败 因此我们的构建过程会失败 这意味着我必须从服务器释放一些空间并再次运行构建脚本 这是浪费时间 我想在
  • Python 子模块在 python 3.7 中正确导入,但在 3.6 中则不然

    我的目录结构如下 test init py m1 init py f1 py f2 py test init py是空的 test m1 init py包含一行import test m1 f1 test m1 f1 py包含一行impor
  • 如何将复杂对象传递到 ASP.NET MVC 中的另一个视图?

    我正在尝试将一个复杂的对象 可以序列化 如果有帮助的话 传递给另一个视图 目前 这是我在某些控制器方法中拥有的代码 User user New User Name Fred Email xxxx return RedirectToActio
  • 为什么每个逻辑 CPU 在多线程情况下都有自己的 CR3 寄存器?

    当我们有一个支持某种形式的多线程的 CPU 时 每个逻辑 CPU 都有它自己的一组寄存器 至少 包括 CR3 寄存器 由于我们在执行不同线程时正在处理同一进程的虚拟地址空间 并且永远不会发生上下文切换 切换同一进程的线程时TLB缓存也不会失
  • conda环境安装后无法导入包

    我尝试安装gdal我的 conda 环境中的包 我激活了 gcpy 环境并使用安装了 gdal 包conda install c conda forge gdal 该软件包安装成功 但是 当我尝试导入包时 出现错误 In 1 import
  • .Bool、.so、? 之间的区别所以

    我试图找出上述例程和 if 语句之间的区别 say y Bool say y so say y say so y 会产生不同的结果 到目前为止 对我来说唯一明显的区别是 优先级高于so Bool and so似乎完全是同义词 这是正确的并且
  • Android谷歌地图异步任务添加标记

    我有一张地图 我有一个点数据库 我想在 AsyncTask 中显示数据库中的点 以便在加载点时用户可以在地图上移动 没有太多点 例如 353 等 但当用户更接近 缩放 具有更大标记的地图时 我会重新绘制所有点 当发生重绘时 应用程序冻结了不
  • Icalendar 事件 RSVP 是否有标准和实现

    总结是 我现在正在实现一个事件确认系统 但找不到 ICalendar 回复的正确格式 因此我想知道是否有一个完整的 REPLY 消息的示例 也许还有一个 PHP 库可以包装所有这些消息 现在了解详细信息 我们收到外部电子邮件 包括要求回复的
  • 使用 tidyr 中的收集改变了我的回归结果

    当我运行下面的代码时 一切都按预期进行 install packages dynlm install packages tidyr require dynlm require tidyr Time lt 1950 1993 Y lt c 5
  • WPF:ItemsControl 中的行和列

    我试过把两个孩子ListView and an ItemsControl在行和列中 通过设置网格RowDefinitions and ColumnDefinitions as the ItemsPanel财产 然而 当我输入时 子控件始终与
  • 根据 XSD 验证 XML 时出错

    我有一个简单的 XML 文件 我想根据 XSD 对其进行验证 当我使用一些随机验证器进行验证时 我总是收到以下错误 发现从元素 Entities 开始的无效内容 预期为 Entities 之一 这是 XML
  • 如何确定与 read.fwf 一起使用的正确文件编码(或使用解决方法来删除不合格的字符)

    我尝试了以下问题中的方法 但仍然陷入困境 如何检测 read csv 的正确编码 https stackoverflow com questions 4806823 how to detect the right encoding for
  • 如何保护资产文件夹中的数据库 sqlite(通过加密)?

    我有过逆向工程的经验 人们可以在android中安静流畅地访问你的数据库 我想知道有什么方法可以在创建时仅对我的数据库进行加密 而不是混淆整个apk 然后在运行时我将使用我的数据库 我对数据库的了解较少 因此任何建议都有助于保护资产文件夹中
  • 防止 LISP 中的终端输出

    我想运行一个函数 但不让它在终端中输出结果 例如 set A B 正常返回B在控制台中如下所示 gt gt gt set A B B gt gt gt A B 我不希望它返回任何东西 我仍然希望该函数能够完成它应该做的事情 只是默默地 gt
  • 良好的 javascript 参考 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 什么是一本好的 javascript 书籍或网站 不仅关注语法 而且很好地解释了 javascript
  • ld 链接问题:/usr/bin/ld: 找不到 [libraryname]

    我使用 Qmake 在 Ubuntu 9 10 上构建共享库 此共享库 A 依赖于另一个共享库 B B项目已成功建设 在项目 A 的 pro 文件中 我的 LIBS 变量如下所示 LIBS L datelib bin llibdatelib