链接库时默认目录上的 gcc 或 g++ 路径搜索顺序

2024-03-02

我见过this https://stackoverflow.com/a/5817315/7724939文章并了解到:

  1. 在命令行上指定的目录-L在默认目录之前搜索选项。
  2. 中指定的目录-L按照在命令行中指定的顺序进行搜索。

问题是:默认目录有搜索顺序吗?

例如,如果我运行以下命令:

$ gcc -Xlinker --verbose  2>/dev/null | grep SEARCH | sed 's/SEARCH_DIR("=\?\([^"]\+\)"); */\1\n/g'  | grep -vE '^$'

(命令复制自本文 https://stackoverflow.com/a/29546339/7724939)

它打印出来/usr/local/lib before /usr/lib在我的机器上(Ubuntu 16.04,64位,gcc 5.4.0)。在这种情况下,将/usr/local/lib之前被搜索过/usr/lib?


来自binutils ld 手册 https://sourceware.org/binutils/docs/ld/index.html部分3.4.2 处理文件的命令 https://sourceware.org/binutils/docs/ld/File-Commands.html:

SEARCH_DIR(路径)

SEARCH_DIR 命令将路径添加到 ld 查找存档库的路径列表中。使用 SEARCH_DIR(path) 与在命令行上使用“-L path”完全相同(请参阅命令行选项)。如果两者都使用,则链接器将搜索这两个路径。首先搜索使用命令行选项指定的路径。

所以,是的,因为默认目录在默认链接描述文件使用这个SEARCH_DIR()命令,将按照命令的顺序搜索它们SEARCH_DIR()命令出现。

例如,在我的mingw安装时,默认链接描述文件开始如下:

/* Default linker script, for normal executables */
/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
   Copying and distribution of this script, with or without modification,
   are permitted in any medium without royalty provided the copyright
   notice and this notice are preserved.  */
OUTPUT_FORMAT(pei-i386)
SEARCH_DIR("=/mingw32/i686-w64-mingw32/lib");
SEARCH_DIR("=/mingw32/lib");
SEARCH_DIR("=/usr/local/lib");
SEARCH_DIR("=/lib");
SEARCH_DIR("=/usr/lib");

--> 一个图书馆/usr/local/lib可以覆盖库/lib and /usr/lib,但不是由以下提供的库mingw itself.

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

链接库时默认目录上的 gcc 或 g++ 路径搜索顺序 的相关文章

随机推荐

  • 使用 Numba 处理 pandas DataFrame 时间序列的有效方法

    我有一个包含 1 500 000 行的 DataFrame 这是我从 QuantQuote com 购买的一分钟级别的股市数据 开盘价 最高价 最低价 收盘价 交易量 我正在尝试对股票市场交易策略进行一些自制的回测 直接使用 python
  • Json和Xml序列化,哪个性能更好?

    我必须在文件中存储一些配置信息 在 C 代码中 配置数据按类表示 在文件中我将以 json 或 xml 格式保存此类 那么 序列化json和xml哪个性能最好呢 好吧 我没有猜测 而是有了答案 这是测试程序 class Program st
  • 适合初学者的 SAML 简单示例

    我是 SAML v2 0 技术的初学者 我获得了理论知识 但我在 Google 上没有找到任何示例 任何人都可以为我提供简单的 SAML for v2 0 的分步示例 到目前为止我已经完成了理论部分 即它支持单点登录 and我也了解服务提供
  • 如何让 Wicket 7 与 Java 8 中的 java.time 配合使用?

    我有很多 bean 并且都使用 LocalDate 和 LocalDateTime Wicket 中的 DateTextField 和所有其他小部件 如 DatePicker 仅适用于 java util Date 有什么办法可以injec
  • 从字符串列表中找到与给定字符串匹配的最佳子集

    我有一根绳子 s mouse 和一个字符串列表 sub strings m o se e 我需要找出与 s 匹配的列表的 sub strings 的最佳和最短匹配子集是什么 做这个的最好方式是什么 理想的结果是 m o se 因为它们一起拼
  • 使用javascript检查用户是否是第一次访问

    我正在尝试构建一个系统 如果用户第一次登陆某个页面 则不会发生任何事情 但如果同一用户再次访问 则该页面不应加载 而是应该转到不同的 URL function session if document cookie indexOf visit
  • 从文本文件中删除前 N 个字节

    是否有任何函数调用或简单的方法可以从 golang 中的文本文件中删除前 N 个字节 假设该文件被各种 go 例程有争议地附加 同时我想删除文件的前 N 个字节 你需要做f Seek要跳过第一个字节并进行常规读取 请参见示例 package
  • 如何获得 mallet 中某个主题的概率分布?

    使用木槌 我可以获得特定数量的主题及其单词 如何确保主题词符合概率分布 即总和为一 例如 如果我按如下方式运行它 如何使用 mallet 给出的输出来确保主题 0 的主题词的概率加起来为 1 mallet train topics inpu
  • 在Java中使用线程同时执行多个方法[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 就我而言 我有三个不同类别的三种方法
  • 在hibernate标准中使用mysql“按情况排序”

    我正在使用 Hibernate 4 3 1 Final Mysql 5 5 并且我想在某些连接实体上使用 按案例排序 的顺序逻辑 我希望实现的目标的纯 sql 表示如下 select adv id adv published date fr
  • 如何使用 jQuery 从 检索值?

    我必须隐藏输入字段 例如
  • 通过 sql 表中的 100,000 条记录进行通配符搜索的最佳优化技术是什么

    我正在开发 ASP NET MVC 应用程序 该应用程序有 200 个用户使用 这些 用户不断地 每 5 分钟 从 100 000 个项目的列表中搜索一个项目 该列表每个月都会增加 1 2 此 100 000 个项目的列表存储在 SQL S
  • ASP.NET Core AuthorizationHandler 未被调用

    我正在尝试添加一些基于自定义角色的authorisation 但我无法 将启动配置为调用我的AuthorizationHandler 我在GitHub上找到了一些相关信息 here https github com dotnet aspne
  • 我应该如何在这个 2d Java 游戏中实现跳跃/重力/下落

    所以这是我的Player类 我想在空格键上跳转的对象 我只是不知道从哪里开始 我可以在互联网上阅读与我相关的任何好的资源吗 任何帮助都很棒 谢谢 package com zetcode import java awt Color impor
  • 填充与有边距的子项

    让我们首先说我理解盒子模型 在我作为开发人员的短暂时间里 我一直试图非常严格地遵循语义 html 并使用响应式设计实践 我最近在一家新公司找到了一份初级开发人员的工作 而我的先生则坚决反对填充 就像他无论如何都不希望它被使用一样 他希望我在
  • 使用 googletest 进行基准测试?

    背景 如果不感兴趣 请跳到下面的问题 我有一个运行三种状态的模拟器 单线程启动 I O 正常 多线程内存中 CPU 限制模拟阶段 I O 不正常 后模拟 后连接单线程阶段 I O 正常 有没有搞错 在标准测试期间 CPU 使用率从100 降
  • 地图上的条形图

    我正在尝试在地图上绘制垂直条形图 我在网上查看了示例 但不知何故无法做到 我的数据目前采用以下格式 University Count Category lat long 这是我尝试执行的代码 library ggplot2 library
  • 我的环境变量是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想在 bash 中找到我的环境变量 它们存储在某个地方吗 我不确定这是否是您想要的 但请尝试printenv这将显示您所有的环境变量 关于它们的存储
  • 验证失败后移动文件 (Java)

    我们正在验证 XML 文件 根据验证结果 我们必须将文件移动到不同的文件夹中 当 XML 有效时 验证器会返回一个值 我们可以毫无问题地移动文件 当 XML 根据架构无效时 也会发生同样的情况 然而 如果 XML 格式不正确 验证器会抛出异
  • 链接库时默认目录上的 gcc 或 g++ 路径搜索顺序

    我见过this https stackoverflow com a 5817315 7724939文章并了解到 在命令行上指定的目录 L在默认目录之前搜索选项 中指定的目录 L按照在命令行中指定的顺序进行搜索 问题是 默认目录有搜索顺序吗