ubuntu C ld链接问题:/usr/bin/ld:找不到[libraryname]
此共享库(A)依赖于另一个共享库(B).
项目B已成功建成.
在项目A的.pro文件中,我的LIBS变量如下所示:
LIBS += -L../datelib/bi
|
我正在使用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 / 但是,这没有解决问题,我收到相同的错误消息. 谁知道如何解决这个问题? [编辑] 我很擅长使用gcc构建.我知道如何创建符号链接,但是我将哪些路径用于lnk命令?我要链接的文件位于/ home / username / work / cppdev / datelib / bin中. 我使用的构建系统(qmake)也会自动创建符号链接作为构建的一部分,所以我的/ home / username / work / cppdev / datelib / bin文件夹中已经有以下文件: > libdatelib_release.so(sym link) 我可能不得不问另一个问题来解释为什么有这么多的符号链接(重点是什么?),以及为什么我不能直接链接到共享库,但必须通过符号链接.我已经阅读了一些在线文档,但到目前为止我看到的似乎更像是格言/传统而不是实际的技术原因为什么在Linux上链接时需要这种抽象级别. 你不能这样使用-l. -l只能通过-lFOO找到名称如libFOO.so的东西.如果要在构建中指定它,则需要没有版本号的符号链接.就像是: ln -s /the/path/to/the/libthing.so.1.0.0 /the/path/to/the/libthing.so现在 C 一切都会奏效. (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Ubuntu、debian7命令行安装php5.6和xdebug
- ubuntu14.04安装QGIS
- Ubuntu中为Android HAL编写JNI方法提供JAVA访问硬件服务接口
- 禁用SSH的密码身份验证无法按预期工作Ubuntu 14.04 LTS
- ubuntu root默认密码(初始密码)
- ubuntu下建立PPTP-VPN客户端拨号连接
- Ubuntu 14.04安装和卸载搜狗拼音输入法
- ubuntu 下出现E: Sub-process /usr/bin/dpkg returned an e
- 【问题收录】[ubuntu]startx doesnt work
- Ubuntu: Vim和gedit乱码问题的解决
- 【环境配置】ubuntu中shell命令不能识别通配符的
- ubuntu WPS 提示“系统缺失字体symbol、wingding
- 修改Ubuntu16.04下网卡名ens为eth
- [Ubuntu] 安装 Nvidia 双显卡驱动
- 【问题收录】[ubuntu]startx doesnt work
- Ubuntu 搭建强大的 IDE ―― Vim + Vundle + 插件
- putty连接ubuntu
- py-faster-rcnn配置运行faster_rcnn_end2end—VG
- ubuntu – 用“./bin/cassandra -f”启动Cassand
- Fuchsia开发环境搭建 for Ubuntu 16.04
