当前位置: 首页 > news >正文

Rust学习笔记 (命令行命令) : 用override set 设置工具链

  • 在cargo run某个项目时出现了如下错误:error: failed to run custom build command for ring v0.16.20(无法运行“Ring v0.16.20”的自定义构建命令),在PowerShell命令行运行命令 rustup override set stable-msvc后成功运行。

  • override set 是 rustup 提供的子命令,用于设置当前目录或项目的 Rust 工具链版本。

  • 感觉和CMake中的以下代码中的配置类似,其将编译器设置为了MSVC以进行代码生成。

  • 这是由于Windows多使用MSVC(Microsoft Visual C++编译器,MSVC只支持Windows平台)而linux中多用GCC(GNU Compiler Collection,GCC可以跨平台,但是可能代码中存在特定于某个编译器的代码比如有#ifdef _MSC_VER,然后才能执行对应的函数)

// CMake管理项目,CMakeLists.txt根据需要选择使用MSVC或者GCC作为编译器
cmake_minimum_required(VERSION 3.0)
project(MyProject)# 设置使用MSVC或者GCC编译器
if(MSVC)# 设置MSVC特定的选项add_compile_options(/W4 /WX)message("MSVC")
elseif(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)# 设置GCC特定的选项add_compile_options(-Wall -Wextra -pedantic -Werror)message("GCC")
else()message(FATAL_ERROR "Unsupported compiler. Please use MSVC or GCC.")
endif()set(CMAKE_CXX_STANDARD 11)  # 设置C++标准为C++11
set(CMAKE_C_STANDARD 99)    # 设置C标准为C99# 添加可执行文件
add_executable(MyExecutable main.cpp)
  • 运行如下
ubuntu@DESKTOP-D7DRBER:~/CODE/TestCMAKE/build$ cmake ../
GCC
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/CODE/TestCMAKE/build
ubuntu@DESKTOP-D7DRBER:~/CODE/TestCMAKE/build$ make
Scanning dependencies of target MyExecutable
[ 50%] Building CXX object CMakeFiles/MyExecutable.dir/main.cpp.o
[100%] Linking CXX executable MyExecutable
[100%] Built target MyExecutable
ubuntu@DESKTOP-D7DRBER:~/CODE/TestCMAKE/build$ ./MyExecutable 
Hello, CMake!

相关文章:

  • OpenCV cv::Mat到 Eigen 的正确转换——cv2eigen
  • Vue3轻松创建交互式仪表盘
  • miniconda3 安装jupyter notebook并配置网络访问
  • 番外1:企业数据
  • 【文档+源码+调试讲解】科研经费管理系统
  • WebKit简介及工作流程
  • 是什么让以太坊从众多公链中脱颖而出
  • CesiumJS【Basic】- #054 绘制渐变填充多边形(Entity方式)-使用shader
  • ONLYOFFICE8.1版本桌面编辑器简单测评
  • 【滑动窗口】个人练习-Leetcode-992. Subarrays with K Different Integers
  • 解决前端登录成功之后,往后端发请求携带cookie问题
  • DB-GPT 文档切分报错
  • 猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0
  • LLDP 基本原理
  • 大数据面试题之MapReduce(3)
  • java8 Stream Pipelines 浅析
  • JavaScript学习总结——原型
  • Java反射-动态类加载和重新加载
  • Median of Two Sorted Arrays
  • node 版本过低
  • Object.assign方法不能实现深复制
  • Zepto.js源码学习之二
  • 你真的知道 == 和 equals 的区别吗?
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何解决微信端直接跳WAP端
  • 网页视频流m3u8/ts视频下载
  • 微信开源mars源码分析1—上层samples分析
  • 译自由幺半群
  • 正则表达式-基础知识Review
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​flutter 代码混淆
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #android不同版本废弃api,新api。
  • #etcd#安装时出错
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (十三)Maven插件解析运行机制
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .netcore 获取appsettings
  • .net项目IIS、VS 附加进程调试
  • @ModelAttribute使用详解
  • [20150904]exp slow.txt
  • [20171101]rman to destination.txt
  • [20190113]四校联考
  • [Android Pro] Notification的使用
  • [Angular 基础] - 表单:响应式表单
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BZOJ1053][HAOI2007]反素数ant