“Hello, World!”的 Clang 链接器问题例子

2023-11-23

我刚刚尝试了最新的LLVM and Clang主干版本。他们编译时没有任何开箱即用的警告,但我在链接时遇到问题你好世界!例子。我的代码是

#include <stdio.h>

int main(){
  printf("Hello, World!\n");
}

如果我使用编译

clang test.c

我收到以下错误

/usr/bin/ld: crt1.o: No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Using -v表明 GNUld被调用为:

"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out crt1.o crti.o crtbegin.o -L -L/../../.. /tmp/cc-0XJTsG.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o crtn.o

但我有 crt1.o 目标文件!

locate crt1.o

Output:

/usr/lib/Mcrt1.o
/usr/lib/Scrt1.o
/usr/lib/crt1.o
/usr/lib/gcrt1.o

这也有效:

clang -c test.c
gcc test.o

而且当然

gcc test.c

我进一步尝试的是:

clang -Xlinker "-L /usr/lib" test.c

/usr/bin/ld: crt1.o: No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

clang -Xlinker "-L /usr/lib" test.c -v

"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out crt1.o crti.o crtbegin.o -L -L/../../.. -L /usr/lib /tmp/cc-YsI9ES.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o

我也尝试复制crt1.o文件到当前目录。这似乎有效。好吧,它没有编译,因为在那之后crti.o失踪。

我的 Linux 发行版是Ubuntu.

好吧,我真的不知道下一步该尝试什么。我不知道如何修复 clang,也不知道如何在ld调用。有任何想法吗?


好像是Clang版本无法检测主机的Linux版本和GCC版本...

Clang 中的此代码必须添加 crt* 的路径:

llvm → tools → clang → lib → Driver → Tools.cpp

  CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crt1.o")));
  CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crti.o")));
  CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtbegin.o")));

GetFilePath 将尝试在以下位置搜索所询问的文件getFilePaths()当前工具链列表(文件clang/lib/Driver/ToolChains.cpp)。如果找不到文件,它将返回名称不变。

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

“Hello, World!”的 Clang 链接器问题例子 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 私有模板函数

    我有一堂课 C h class C private template
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • WPF 中文本框中的 ScrollToCaret 位于何处?

    我无法找到该功能 基本上我有一个多行文本框 当我执行搜索时 我会突出显示结果 但是 如果结果不在视图中 我将不得不手动向下滚动 直到找到突出显示的结果 这超出了 查找 功能的目的 我不想使用 RichTextBox 因为我遇到了一些性能问题
  • PHP PDO 获取 null

    如何检查列值是否为空 示例代码 db DBCxn getCxn sql SELECT exercise id author id submission result submission time total rating votes to
  • 单击按钮时呈现部分视图

    我有索引视图 using System Web Mvc Html model MsmqTestApp Models MsmqData Scripts jquery unobtrusive ajax min js type text java
  • python子进程Popen环境路径?

    假设有一个可执行文件和一个用于启动它的 Python 脚本 并且它们位于 兄弟 子目录中 例如 tmp subdir1 myexecutable tmp subdir2 myscript py If in tmp和跑步python subd
  • 如何强制 std::stringstream 运算符 >> 读取整个字符串?

    如何强制 std stringstream 运算符 gt gt 读取整个字符串而不是停在第一个空格处 我有一个模板类 用于存储从文本文件读取的值 template
  • VS2019中的C++20 chrono解析问题(最新)

    我有一个使用 date h 库在 C 14 下工作的函数 但我正在将程序转换为使用 C 20 但它不再工作 请问我做错了什么 我的C 14 date h代码如下 include
  • 以Python方式打印字典中最大值的键[重复]

    这个问题在这里已经有答案了 给定一本字典d其中键值对由字符串作为键和整数作为值组成 我想打印值为最大值的键字符串 当然我可以循环d items 存储最大值及其键 并在后面输出后者for环形 但是有没有一种更 Pythonic 的方式只使用m
  • 无法使用 SelectedItem = null 清除列表框选择 - MVVM

    我有以下数据模板 以及相应的视图模型 未显示
  • 使用 LINQ 获取具有自定义对象的列表的总和/平均值

    我有一堂课 public class PointD public double X get set public double Y get set public PointD double x double y X x Y y operat
  • 从 Python 打开 Excel 应用程序

    我正在使用 xlwt 写入 Excel 文件 作为我的 Python 项目的一部分 我还需要实际打开 Excel 电子表格进行显示并关闭它 我发现了一个函数 import webbrowser webbrowser open C Users
  • Delphi 中的命名空间

    使用长单位文件名是否有任何实际好处 例如MyLib MyUtils pas或者它只是一种单位名称前缀 与所有标识符一样 命名空间旨在进行组织 因此 只有当您的项目以更好的方式组织时 使用它们才会受益 这个高度主观的问题 即使是最简单的命名约
  • JQuery UI 选项卡:如何从另一个页面直接导航到选项卡?

    JQuery UI 选项卡是通过无序列表中的命名锚点实现的 当您将鼠标悬停在其中一个选项卡上时 您可以在浏览器底部显示的链接中看到这一点 http mysite product 3 orders 例如 上面是 订单 选项卡 JQuery 显
  • getAdapterPosition() 不返回 RecyclerView 中项目的位置

    这是一种后续或补充这个帖子 我试图获取 RecyclerView 中某个项目的位置 但我尝试过的方法都不起作用 我打了电话getAdapterPosition in my PersonViewHolder构造函数并将其值赋给整数位置 该位置
  • 是否有 Julia 相当于 NumPy 的省略号切片语法 (...)?

    在 NumPy 中 省略号语法 is for 填写若干 直到切片说明符的数量与数组的维度匹配 释义这个答案 我怎样才能在朱莉娅中做到这一点 还没有 但如果你愿意的话你可以帮助自己 import Base getindex Base seti
  • 如何重写 JavaScript 函数

    我正在尝试覆盖内置的parseFloat函数于JavaScript 我该怎么做呢 var origParseFloat parseFloat parseFloat function str alert And I m in your flo
  • 使用 Retrofit 暂停和恢复下载

    我使用本教程在我的应用程序中实现下载文件 https www learn2crack com 2016 05 downloading file using retrofit html 问题是 如果网速很慢或者网络波动哪怕是一秒钟 下载就会永
  • `touchesBegan:withEvent:` 在屏幕左边缘延迟

    我遇到了一个问题 第一次致电touchesBegan withEvent on a UIView or UIViewController当您触摸屏幕左边缘时会延迟 这似乎是 iOS 10 的新问题 并且仅发生在具有 3D Touch 的设备
  • 如果实例没有分配泛型类型,则每个循环中的泛型问题[重复]

    这个问题在这里已经有答案了 有人可以向我解释一下为什么明确需要为 ForEachLoop 实例分配泛型类型吗 为什么编译器会抱怨 类型不匹配 无法从元素类型 Object 转换为 String JDK 1 5 0 09 import jav
  • Itemscope 和 itemprop 处于同一级别

    我有一个看起来像这样的链接 a href href img src src a 我想放itemprop url in the a 标签 但它包含itemscope对于该产品 我可以把它放在同一水平吗itemtype 或者 我是否需要将整个内
  • “Hello, World!”的 Clang 链接器问题例子

    我刚刚尝试了最新的LLVM and Clang主干版本 他们编译时没有任何开箱即用的警告 但我在链接时遇到问题你好世界 例子 我的代码是 include