-
在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!
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Rust学习笔记 (命令行命令) : 用override set 设置工具链
发表评论 取消回复