【发布时间】:2011-05-14 03:09:50
【问题描述】:
我正在构建一个简单的 C++ 程序,并且我想暂时将系统提供的共享库替换为更新版本的共享库,以进行开发和测试。
我尝试设置 LD_LIBRARY_PATH 变量,但链接器 (ld) 失败:
/usr/bin/ld: 找不到-lyaml-cpp
我希望它可以工作,因为根据 ld 手册页:
链接器使用以下搜索 找到所需共享的路径 库:...对于本机链接器, 环境变量的内容 “LD_LIBRARY_PATH”...
然后我尝试设置 LIBRARY_PATH,并且成功了。
根据 GCC 手册:
价值 LIBRARY_PATH 是一个冒号分隔的列表 目录,很像 PATH。什么时候 配置为本机编译器,GCC 尝试如此指定的目录 搜索特殊链接器时 文件,如果找不到它们使用 GCC_EXEC_PREFIX。使用 GCC 链接 也使用这些目录时 寻找普通图书馆 -l 选项(但目录 用 -L 指定在前)。
正如 (GCC) 手册所建议的那样,LIBRARY_PATH 有效,因为我与 GCC 链接。
但是..
- 既然我与 gcc 链接,为什么 ld 是 被调用,作为错误消息 建议?
- 有什么意义 有两个变量服务相同 目的?有没有其他的 区别?
【问题讨论】: