相关疑难解决方法(0)

LD_LIBRARY_PATH vs LIBRARY_PATH

我正在构建一个简单的C++程序,我想暂时用一个系统提供的共享库替换它的更新版本,以进行开发和测试.

我尝试设置LD_LIBRARY_PATH变量,但链接器(ld)失败了:

/ usr/bin/ld:找不到-lyaml-cpp

我希望这可以工作,因为根据ld手册页:

链接器使用以下搜索路径来查找所需的共享库:...对于本机链接器,环境变量"LD_LIBRARY_PATH"的内容...

然后我尝试设置LIBRARY_PATH,这很有效.

根据GCC手册:

LIBRARY_PATH的值是以冒号分隔的目录列表,与PATH非常相似.当配置为本机编译器时,GCC会在搜索特殊链接器文件时尝试这样指定的目录,如果它无法使用GCC_EXEC_PREFIX找到它们.在使用-l选项搜索普通库时,使用GCC链接也会使用这些目录(但首先使用-L指定的目录).

正如(GCC)手册所示,LIBRARY_PATH可行,因为我与GCC链接.

但..

  • 由于我与gcc链接为什么要调用ld,因为错误消息表明?
  • 让两个变量服务于同一目的有什么意义?还有其他差异吗?

gcc g++ ld

144
推荐指数
3
解决办法
17万
查看次数

标签 统计

g++ ×1

gcc ×1

ld ×1