C++14 standard requested but CXX14 is not defined

文章描述了在CentOS系统上安装R包时遇到的C++14标准未定义的错误。作者尝试了修改.Rprofile的Makevars文件,以及升级GCC至devtoolset-10,但问题仍未解决。最终,通过指定新版本GCC的路径成功解决了问题,强调了升级GCC和明确编译器路径的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zhongxu blog

C++14 standard requested but CXX14 is not defined

2021-09-09 

 Default Category

文章目录

在安装R包的时候遇到报错,C++14 standard requested but CXX14 is not defined

查了很多办法,刚开始是根据https://github.com/stan-dev/rstan/issues/892修改.R下面的Makevars,

但是包另外一个错g++: error: unrecognized command line option ‘-std=c++14’

于是继续查到c++1y这个问题,但依然没有解决问题。

复盘了一下,感觉是gcc的问题,所以升级了最新的gcc

1
2
3
4
# 系统是CentOS
sudo yum install centos-release-scl
sudo yum install devtoolset-10
scl enable devtoolset-10 bash

但是装包的时候新版的gcc依然不能别识别,所以修改Makevars,最终用了如下的配置,重点是指定了新版的g++和c++的路径,这样问题就解决了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
MAKEFLAGS = -j18

## C++ flags
CXX=g++
CXX11=g++
CXX14=/opt/rh/devtoolset-9/root/usr/bin/g++
CXX17=g++

CXXFLAGS=-O3 -march=native -Wno-ignored-attributes
CXX11FLAGS=-O3 -march=native -Wno-ignored-attributes
CXX14FLAGS=-O3 -march=native -Wno-ignored-attributes
CXX17FLAGS=-O3 -march=native -Wno-ignored-attributes

CXXPICFLAGS=-fPIC
CXX11PICFLAGS=-fPIC
CXX14PICFLAGS=-fPIC
CXX17PICFLAGS=-fPIC

CXX11STD=-std=c++11
CXX14STD=-std=c++14
CXX17STD=-std=c++17

## C flags
CC=/opt/rh/devtoolset-10/root/usr/bin/gcc
FLAGS=-O3 -march=native

## Fortran flags
FC=gfortran
F77=gfortran
FFLAGS=-O3 -march=native
FCFLAGS=-O3 -march=native

总结: 1,upgrade gcc

2, specify the absolute gcc and g++ path

如果可以的话,建议把整个系统的gcc都替换成新版的

####################################################################

#版权所有 转载请告知 版权归作者所有 如有侵权 一经发现 必将追究其法律责任

#Author: Jason

#####################################################################

文章作者 zzx

来源

C++14 standard requested but CXX14 is not defined - Zhongxu blog

上次更新 2021-09-09

Linux

 肿瘤免疫表型-cold (excluded, desert) and hotTake only memories, leave only footprints 

  

由 Hugo 强力驱动 | 主题 - Even© 2012 - 2023zzx浙ICP备2022010110号 |浙公网安备 33010502007012号

 

### 解决方案 当遇到 `WARNING: You have requested the merging of multiple formats, but ffmpeg is not available. The formats will not be merged.` 的错误时,这表明系统缺少 FFmpeg 工具的支持。以下是解决问题的具体方法: #### 1. 安装 FFmpeg 为了支持多格式合并功能,需要在本地环境中安装 FFmpeg。不同操作系统的安装方式略有差异。 ##### 在 CentOS 上安装 FFmpeg 可以按照以下步骤完成 FFmpeg 的安装[^3]: ```bash sudo yum update sudo yum install autoconf automake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel x264-devel lame-devel git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ./configure make sudo make install ``` 完成后,在终端运行以下命令验证 FFmpeg 是否成功安装: ```bash ffmpeg -version ``` 如果显示版本号,则表示安装成功。 ##### 在 Ubuntu 或 Debian 上安装 FFmpeg 对于基于 Debian 的发行版,可以直接通过 APT 包管理器安装 FFmpeg: ```bash sudo apt update sudo apt install ffmpeg ``` ##### 在 macOS 上安装 FFmpeg macOS 用户可以通过 Homebrew 来快速安装 FFmpeg: ```bash brew install ffmpeg ``` #### 2. 处理 NVIDIA GPU 加速相关问题 如果计划使用 NVIDIA GPU 提供硬件加速(例如 CUVID),则需额外配置 NV Codec Headers[^2]。执行以下步骤即可满足依赖项需求: ```bash git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git cd nv-codec-headers make sudo make install ``` 随后重新编译 FFmpeg 并启用相应的选项(如 --enable-cuvid)。注意此部分仅适用于有特定硬件环境的情况。 #### 3. 验证工具链完整性 确保所有必需组件均已正确部署完毕之后再次尝试下载视频文件。此时应不会再收到关于无法合并多个流的警告消息。 --- ### 示例代码片段 下面是一个简单的 Python 脚本用于测试 FFmpeg 功能是否正常工作: ```python import os def test_ffmpeg(): result = os.system('ffmpeg -version') if result == 0: print("FFmpeg is successfully installed.") else: print("Error occurred while testing FFmpeg.") test_ffmpeg() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值