如何更改 GCC 的默认搜索目录 crti.o?

2024-02-10

我想指定 GCC 的搜索目录startfile and endfile: crt1.o, crti.o and crtn.o。通过-B在命令行上 GCC 驱动程序可以工作,但不方便。如何修改规格 文件 (lib/gcc/x86_64-unknown-linux-gnu/4.9.2/specs) 指定搜索路径startfile?

我尝试添加-B的选项startfile规范并得到错误:ld: unrecognized option '-B/gsc/btl/linuxbrew/lib'

然后我尝试添加-B的选项cc1规范并得到错误:cc1: error: command line option '-B/gsc/btl/linuxbrew/lib' is valid for the driver but not for C

如果无法通过specs文件中,GCC 是否有环境变量或配置选项可以实现相同的目标?

我已经安装了最新版本glibc在我的主目录中。一切都很顺利。我已经修改了specs文件链接到新版本glibc,但它仍然链接到旧系统版本/usr of startfile and endfile.

这是一个未回答的问题 https://gcc.gnu.org/ml/gcc-help/2015-02/msg00016.html on the gcc-help邮件列表。这是一个相关的 Linuxbrew 错误,gfortran 在独立的 Linuxbrew 中被破坏 https://github.com/Homebrew/linuxbrew/issues/135以及建议的修复方案,gcc、binutils:链接到 Cellar 而不是系统库 https://github.com/Homebrew/linuxbrew/pull/200.

Thanks,
Shaun


您可以在中使用绝对路径*startfile: and *endfile:规范文件中的部分,而不是默认的相对路径。这将覆盖 GCC 对默认位置的选择。

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

如何更改 GCC 的默认搜索目录 crti.o? 的相关文章

  • gcc 中的“假设”子句

    gcc 最新版本 4 8 4 9 是否有类似于以下的 假设 子句 assume 内置icc支持吗 例如 assume n 8 0 从 gcc 4 8 2 开始 gcc 中没有 assume 的等效项 我不知道为什么 这会非常有用 马夫索建议
  • 在 C++17 中使用 成员的链接错误

    我在 Ubuntu 16 04 上使用 gcc 7 2 并且需要使用 C 17 中的新文件系统库 尽管确实有一个名为experimental filesystem的库 但我无法使用它的任何成员 例如 当我尝试编译此文件时 include
  • 编译器如何实现位域运算?

    当询问如何做的问题时包裹 N 位有符号减法 https stackoverflow com questions 8309538 integer subtraction with wrap around for n bits我得到了以下答案
  • 包括带有大量全局变量的 C 头文件

    我有一个包含 100 多个全局变量的包含文件 它正在库中使用 但我链接库的一些程序也需要访问全局变量 它的构建方式 In one library c file define Extern In the programs that use t
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • clang 是否提供类似于 GCC 6.x 的函数多版本控制 (target_clones) 的功能?

    我读了这篇 LWN 文章 https lwn net Articles 691932 饶有兴趣 执行摘要 GCC 6 x 支持所谓的函数多版本控制 它可以构建同一函数的多个版本 并针对不同的指令集进行优化 假设您有一台支持 AVX2 的机器
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 避免 gcc 函数序言开销?

    我最近遇到了很多 gcc 在 x86 上生成非常糟糕的代码的函数 它们都符合以下模式 if some condition do something really simple and return else something comple
  • GCC 5 及更高版本中的 AVX2 支持

    我编写了以下类 T 来加速操作 使用 AVX2 的 字符集 然后我发现它不起作用 gcc 5 及更高版本当我使用 O3 时 谁能帮我追踪到一些编程结构 已知不适用于最新的编译器 系统 该代码的工作原理 底层结构 bits 是一个 256 字
  • 在GCC中添加父目录的包含路径

    我想将父目录中的文件包含在我正在处理的项目中 所有的头文件都在父目录中 有没有办法在命令行上使用 I 来搜索父目录中的包含而不使用绝对路径 我知道我可以使用 makefile 解决这些问题 并且我可能最终会这样做 但我想知道是否有一个可以使
  • 要求编译器发出无分支/恒定时间代码

    在密码学中 任何依赖于秘密数据 例如私钥 的代码都必须在恒定时间内执行 以避免侧信道定时攻击 https en wikipedia org wiki Timing attack 目前最流行的架构 x86 64 和 ARM AArch64 都
  • 如何在 GCC C++ 中编写多行内联汇编代码?

    这看起来不太友好 asm command 1 command 2 command 3 我真的必须在每一行加上双引号吗 另外 由于多行字符串文字在 GCC 中不起作用 我也无法欺骗它 我总是在互联网上找到一些例子 该人手动插入制表符和换行符而
  • CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

    我正在使用以下短程序来测试std clock include
  • 从c调用汇编函数

    我试图从 c 调用汇编函数 但我不断收到错误 text globl integrate type integrate function integrate push ebp mov esp ebp mov 0 edi start loop
  • Qt 编译器标志顺序

    我的目标是消除某些类型的编译器警告 我发现可以通过在 pro 文件中添加编译器标志来做到这一点 QMAKE CXXFLAGS Wno unused variable Wno reorder 问题是它们被添加在 Qt 构建系统生成的标志之前
  • gcc 链接器库搜索顺序;路径加静态与共享

    通读 gcc 手册 我相信以下两种说法是正确的 在命令行上指定的库搜索路径在 默认 路径之前搜索 我认为这意味着 LIBRARY PATH 环境变量中的内容 共享库将优先于静态库进行链接 在没有标志说明要这样做的情况下 但这两者谁占主导地位
  • GCC:如何在 MCU 上完全禁用堆使用?

    我有一个在基于 ARM Cortex M 的 MCU 上运行并用 C 和 C 编写的应用程序 我用gcc and g 编译它并希望完全禁用任何堆使用 在 MCU 启动文件中 堆大小已设置为 0 除此之外 我还想禁止代码中意外使用堆 换句话说
  • Gnu C++ 何时会在没有明确要求的情况下支持 C++11?

    目前 使用 g 4 8 1 您必须通过以下方式在 C 11 模式下编译文件 g std c 11 o prog x prog cpp 当我只能说的时候有计划吗 g o prog x prog cpp 编译prog cpp Maybe pro
  • 为什么GCC编译的应用程序总是包含_mcount符号?

    库并不总是包含 mcount 符号 但应用程序包含 您可以使用 gobjdump 或 nm 实用程序验证这一点 我读过 mcount 用于实现分析 但即使禁用分析并启用优化 O2 该符号仍然存在 它还有其他额外的用途吗 更新 我使用的是 S

随机推荐