我正在构建一个简单的C ++程序,我想用它的最新版本临时替换系统提供的共享库,以进行开发和测试。
我尝试设置LD_LIBRARY_PATH变量,但链接器(ld)失败,并显示以下信息:
/ usr / bin / ld:找不到-lyaml-cpp
我期望它能工作,因为根据ld手册页:
链接器使用以下搜索路径来查找所需的共享库:...对于本机链接器,环境变量“ LD_LIBRARY_PATH”的内容...
然后,我尝试设置LIBRARY_PATH,并且有效。
根据GCC手册:
LIBRARY_PATH的值是用冒号分隔的目录列表,非常类似于PATH。当配置为本地编译器时,如果无法使用GCC_EXEC_PREFIX找到特殊的链接器文件,则GCC会尝试搜索指定的目录。当在普通库中搜索-l选项时,使用GCC链接也会使用这些目录(但使用-L指定的目录排在最前面)。
正如(GCC)手册所建议的,LIBRARY_PATH可以工作,因为我与GCC链接。
但..
- 由于我与gcc链接,为什么错误消息提示为什么调用ld?
- 具有两个目的相同的变量有什么意义?还有其他区别吗?