Clang、GCC 和 LTO 之间的互操作性

2024-01-17

我知道 Clang 和 GCC 或多或少是兼容的 C/C++ 编译器,只要处理好架构标志、预定义和链接正确的库之类的事情。使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常简单(至少在 x86 上)。

这是一个小测试项目,正是这样做的:https://gitlab.com/higaski/Interoperability https://gitlab.com/higaski/Interoperability

但是我想知道链接时间优化(LTO)是否可以跨编译器工作?我知道 LTO 需要某种形式的中间表示,例如 LLVM 位码或 GCC GIMPLE,但也许有一个工作流程可以同时利用它们?


不,LTO 不能在编译器之间共享,正是因为它实际上是编译器内部表示的转储。即使在同一编译器的不同版本之间,这种表示形式也是不稳定的。

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

Clang、GCC 和 LTO 之间的互操作性 的相关文章

随机推荐

  • 调用 Web 服务时出现“内存不足”异常

    我有一个 ASP NET Web 应用程序 它调用 NET DLL 而 NET DLL 又调用 Web 服务 Web 服务调用抛出异常 无法生成临时类 结果 1 错误 CS0001 内部 编译器错误 0xc00000fd 错误 CS0003
  • LINQ 与 groupby 和 count

    这很简单 但我不知所措 给定这种类型的数据集 UserInfo name metric day other metric 以及这个样本数据集 joe 1 01 01 2011 5 jane 0 01 02 2011 9 john 2 01
  • iOS 7 中的 UIActivityViewController

    在我的应用程序中 我添加了这些代码行以合并 uiactivityviewcontroller 的功能 UIImage yourImage someImg UIActivityViewController activityVC UIActiv
  • 将数据输入转换为数据输入流?

    java中如何将DataInput转换为DataInputStream 我需要知道数据输入的大小 由于根据定义 流实际上没有开始或结束 因此没有万无一失的方法来知道有多少可用 因此您只需以固定大小的块从流中读取 听起来你最好使用普通的旧 r
  • matplotlib 颜色条交替顶部底部标签

    首先 这是一个自我回答的问题 因为我相信这在某些情况下会有帮助 例如在这个帖子 https stackoverflow com questions 20337664 cleanest way to hide every nth tick l
  • SQL Server:带有标题的动态数据透视表,包含列名称和日期

    我正在尝试使用动态数据透视表 并且需要有关将行转换为列的帮助 该表看起来像 ID expense revenue date 1 43 45 12 31 2012 1 32 32 01 01 2013 3 64 56 01 31 2013 4
  • 为什么 Javascript 对于 Websocket 很重要?

    这似乎是一个奇怪的问题 但我真的很困惑 因为下载时这个例子来自龙卷风 https github com facebook tornado tree master demos websocket我想 好吧 我运行它 它会起作用的 但问题是 它
  • 每天在特定时间运行 CRON 作业

    现在我每天下午 3 点运行我的 cron 作业 0 15 但我想一天运行两次我的 cron 作业 上午 10 30 和下午 2 30 0 30 10 我相信该命令将在上午 10 30 运行 我应该如何在下午 2 30 运行它 Cron实用程
  • Excel:令人难以置信的收缩和扩展控件[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有时 我会遇到一个电子表格 其中的魔法按钮或列表框会随着时间的推移而变大或变小 代码中没有任何内容指示这一点 还有人经历过这种快乐吗 该问
  • 类型错误:无法读取未定义的属性“then”

    loginService islogged 上面的函数返回一个类似 failed 的字符串 但是 当我尝试在其上运行 then 函数时 它将返回错误 TypeError Cannot read property then of undefi
  • Fortran 2003 中的类型绑定过程重载

    我已经用 Java 编程几年了 然而 我现在正在学习一门使用 Fortran 作为示例代码 77 标准 的课程 尽管我一直将 Fortran 视为一门古老的语言 但我决定使用 gfortran 编译器尝试 2003 年标准的最新实现 以亲自
  • 在 Node.js 中使用 JSON 对象进行响应(将对象/数组转换为 JSON 字符串)

    我是后端代码的新手 我正在尝试创建一个函数来响应我的 JSON 字符串 我目前从一个例子中得到了这个 function random response console log Request handler random was calle
  • 更改回形针中的错误验证消息

    当您在回形针中设置验证消息时 例如 validates attachment presence image message gt xxxx 自定义消息会自动以字段名称作为前缀 即使它已被 message 覆盖 如何完全覆盖该消息并使其完全自
  • 如何让 PHP 使用国际化日期?

    我正在尝试让 PHP 日期能够跨语言工作 语言代码将根据登录用户的语言设置提供 我想我可以这样做 setlocale LC ALL de DE UTF 8 echo strftime A B Y 但输出是 Wednesday April 2
  • 如何获取表单提交popup.html chrome扩展的值

    我一直在尝试获取表单中用户输入的值 以传递给 chrome 扩展中的 javascript 函数 问题是我不知道如何获取用户输入 这是我的 manifest json 文件的一部分 browser action default icon a
  • 如何找到最长的回文子序列?

    问题就在这里 6 7ch6 http www cs berkeley edu vazirani algorithms chap6 pdf 来自算法书 Vazirani 与经典问题略有不同找到最长的回文 https stackoverflow
  • Python:语法错误:关键字 arg 之后非关键字

    当我运行以下代码时 def regEx1 os chdir C Users Luke Desktop myFiles files os listdir os mkdir C Users Luke Desktop FilesWithRegEx
  • Discord 机器人读取对设置消息的反应

    我让我的机器人读取所有渠道中的所有消息 然后根据只有 表情符号而没有其他内容来分配角色 常量高于所有代码 const Discord require discord js const bot new Discord Client const
  • 在没有 React.memo 的情况下使用 useCallback 有什么好处吗?

    根据我从 React 文档和网络上其他材料中了解到的 useCallback 用于通过确保将回调的记忆版本传递给子组件来避免重新渲染子组件 因此子组件的引用属性保持相同 但只有当我在子组件上使用 React memo 时 所有这些才有效 如
  • Clang、GCC 和 LTO 之间的互操作性

    我知道 Clang 和 GCC 或多或少是兼容的 C C 编译器 只要处理好架构标志 预定义和链接正确的库之类的事情 使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常简单 至少在 x86 上 这是一个小测试项目 正是这样做