使用 Rust 语言编译问题:从“Hello World”开始

     2023-03-15     201

关键词:

【中文标题】使用 Rust 语言编译问题:从“Hello World”开始【英文标题】:Compiling issues with Rust language: starting with 'Hello World' 【发布时间】:2020-05-17 20:22:52 【问题描述】:

我正在使用一个 up2date Linux Mint 系统,我将它用于许多试错项目。 今天我偶然发现了 Rust,并想尝试一下。

到目前为止一切顺利。安装 Rust 简单易行。

使用建议的方法,设置环境变量并执行更新:

curl https://sh.rustup.rs -sSf | sh source $HOME/.cargo/env rustup update

到目前为止一切顺利,没有错误或其他干扰信号。所以在前面我尝试之后,就像每个人一样,编译“Hello world”示例。在这里它横着走。错误:

...
$ rustc main.rs
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" [....... ]"-lutil" "-lutil"
  = note: /usr/bin/ld: cannot find Scrt1.o: No such file or directory
          /usr/bin/ld: cannot find crti.o: No such file or directory
          collect2: error: ld returned 1 exit status
...

我的系统已经安装了cc:cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

有人知道我该如何解决这个问题吗?

【问题讨论】:

欢迎来到 SO!请,如果您有问题,请尝试找出其他人是否有类似的问题以及是否有有用的答案。也许这可以解决您的问题:***.com/questions/6329887/… 或 ***.com/questions/3299511/…。详情请查看***.com/questions/16436035/…。 重复Compiling problems: cannot find crt1.o 【参考方案1】:

我在 Clang 的其他帖子中找到了一个对我有用的答案:Compiling problems: cannot find crt1.o。

Dmitry Pavlenko 给出的答案对我也很有效:

问题是您可能只有当前的 gcc 架构,那是 64 位。您需要 32 位支持文件。为了 那,你需要安装

sudo apt install gcc-multilib

【讨论】:

从c++转向最受欢迎的rust语言

...f0c;腾讯TEG后台开发工程师在日常开发过程中,若长期使用C++语言,在初次使用Rust的过程中可能会碰到一些问题。本文尝试从C++的角度来说明在使用Rust时需要特别注意的一些地方,特别是其中的思维方式... 查看详情

详细解答!从c++转向rust需要注意哪些问题?

导语 | 在日常开发过程中,若长期使用C++语言,在初次使用Rust的过程中可能会碰到一些问题。本文尝试从C++的角度来说明在使用Rust时需要特别注意的一些地方,特别是其中的思维方式的转变(mindshift)。... 查看详情

如何使用字符串作为参数从 Go 调用 Rust 函数?

】如何使用字符串作为参数从Go调用Rust函数?【英文标题】:HowdoIcallaRustfunctionfromGowithastringasaparameter?【发布时间】:2021-04-2300:13:23【问题描述】:我一直在尝试将字符串传递给Rust函数(编译为Wasm),但是据我了解,目前无法... 查看详情

rust编译器教我做人,为啥还要学习rust语言,因为想使用rust做一些底层服务,更深入的研究技术。

目录1,继续学习Rust语言,确实学习成本很高,学了两周还在学习入门概念,和编译器斗争2,rust学习曲线非常高,为啥还要坚持学习,一直想写一些服务研究研究底层的技术啥的3,rust对前端也有... 查看详情

rust语言教程-从熟悉的部分开始(代码片段)

...以先从我们熟悉的部分开始学习。一般我们写代码,使用的主要是数据类型、控制结构和函数。我们就从这三部分开始。数据类型与Go一样,Rust的定义语句数据也是放在变量名后面的& 查看详情

rust学习笔记02:利用命令创建编译和运行项目

文章目录一、Rust语言构成二、利用命令创建、编译和运行项目(一)可执行二进制的项目1、创建项目2、编译项目3、运行项目(二)用于编写库的项目1、创建项目2、编译项目3、测试项目4、添加测试模块5、再次编译项目6、再... 查看详情

rust编译器教我做人,为啥还要学习rust语言,因为想使用rust做一些底层服务,更深入的研究技术。

目录1,继续学习Rust语言,确实学习成本很高,学了两周还在学习入门概念,和编译器斗争2,rust学习曲线非常高,为啥还要坚持学习,一直想写一些服务研究研究底层的技术啥的3,rust对前端也有... 查看详情

rust入坑指南:坑主驾到(代码片段)

...的体验的同时给予开发者控制底层细节的权限(比如内存使用)。低级语言在开发过程中很容易出现各种细微的错误,它们难以发现但是可能影响巨大。其他大部分低级语言只能靠覆盖面更广的测试用例和经验丰富的开发者来解... 查看详情

是否可以从将引用作为参数的 rust dll 导出函数

...07-0418:52:53【问题描述】:我是学习rust的新手,我看到rust使用通用生命周期在编译时验证引用,这非常好。我没有深入研究如何在rust中构建dll或共享库,但据我所知,可以从dll中导出一个函 查看详情

rust从入门到精通04-数据类型

Rust是静态类型(staticallytyped)语言,也就是说在编译时就必须知道所有变量的类型。在Rust中,每一个值都属于某一个数据类型(datatype),分为两大类:①、标量(scalar):整型、浮点型、布尔类型、字符类型②、复合(compound... 查看详情

rust入坑指南:齐头并进(下)(代码片段)

...供原子类型,Rust也不例外,在前文中我们聊了Rust中锁的使用,有了锁,就要小心死锁的问题,Rust虽然声称是安全并发,但是仍然无法帮助我们解决死锁的问题。原子类型就是编程语言为我们提供的无锁并发编程的最佳手段。熟... 查看详情

初窥门径:从helloworld开始rust学习

...完成rust工具链的安装。工欲善其事必先利其器,你可以使用任何编辑器来写rust代码,我比较喜欢VSCode,它免费,功强大而且速度很快。在VSCode下我安装了一些插件来提供效率,你有兴趣也可以参考:rust-analyzer:会实时编译和分... 查看详情

如何使用rust做静态编译,让编译出来的程序不再依赖其他库?

在编译RUSTCLI之后,发给客户,如果客户的电脑没有安装相应的依赖,那会运行不了,那如何让RUST程序自带干粮,不依赖这些七七八八的库呢?如果你用的是RUSTGNU版本,那可以直接发给客户,本身就自带了依赖项,不会有问题,... 查看详情

我的第一篇rust博客(代码片段)

...行修改,并且引用是有生命周期的,编译器会约束引用的使用,它在原始变量释放内存之前必须归还,以杜绝垂悬指针,不按规则使用,就会编译不通过。第一篇rust博客就是关于引用生命周期的,直接贴一段错误代码,从数据... 查看详情

为 ARM 交叉编译 Rust 程序时的 ALSA 链接

...简单的Rust程序,以便在安装了libasound-dev库的Docker容器内使用wavycrate在RaspberryPiZero上使用ALSA驱动程序录制声音。但是,链接器抱怨:note:/op 查看详情

从 Rust 调用动态链接的 Haskell 代码

...015-09-2016:24:58【问题描述】:我正在尝试用一些Haskell代码编译一些Rust代码。我有一个测试系统设置了一个文件,Fibonacci.hs具有一个函数,该函数在Haskell中计算斐波那契数并通过Haskell的FFI将函数导出为fibonacci_hs(如 查看详情

llvm编译器优化与应用示例

...以讲很深,但今天只会带大家看些简单的LLVMIR跟 组合语言,并且举一些例子来讲 编译器”优化” 在做些什么。今天的示例会以Rust为主,因为Rust编译器的核心是建立在LLVM之上,所以也支持编译成LLVMIR。虽然如此,就... 查看详情

Rust 不匹配的类型混淆编译器

...mpiler【发布时间】:2017-01-0722:25:39【问题描述】:我尝试使用impl来处理一些奇怪的类型逻辑。以下是该错误的快速重建:traitSchrodingersstructAliveCat;implSchrodingersforContainer<AliveCat>structDeadCat;implS 查看详情