Unrecognized command line option ошибка

Asked
10 years, 4 months ago

Viewed
229k times

I’m trying to compile using g++ and either the -std=c++11 or c++0x flags.

However, I get this error

cc1plus: error: unrecognized command line option "-std=c++11"

g++ —version

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

asked Feb 3, 2013 at 16:25

13

Seeing from your G++ version, you need to update it badly. C++11 has only been available since G++ 4.3. The most recent version is 4.7.

In versions pre-G++ 4.7, you’ll have to use -std=c++0x, for more recent versions you can use -std=c++11.

answered Feb 3, 2013 at 16:33

antonijn's user avatar

antonijnantonijn

5,7022 gold badges26 silver badges33 bronze badges

6

Quoting from the gcc website:

C++11 features are available as part of the «mainline» GCC compiler in the trunk of GCC’s Subversion repository and in GCC 4.3 and later. To enable C++0x support, add the command-line parameter -std=c++0x to your g++ command line. Or, to enable GNU extensions in addition to C++0x extensions, add -std=gnu++0x to your g++ command line. GCC 4.7 and later support -std=c++11 and -std=gnu++11 as well.

So probably you use a version of g++ which doesn’t support -std=c++11. Try -std=c++0x instead.

Availability of C++11 features is for versions >= 4.3 only.

answered Feb 3, 2013 at 16:30

stefan's user avatar

stefanstefan

10.2k4 gold badges49 silver badges88 bronze badges

2

you should try this

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x

codegeek's user avatar

codegeek

31.9k12 gold badges62 silver badges63 bronze badges

answered Feb 20, 2014 at 16:46

papo's user avatar

papopapo

1551 silver badge6 bronze badges

0

I also got same error, compiling with -D flag fixed it, Try this:

g++ -Dstd=c++11

answered May 5, 2015 at 6:52

pankaj kushwaha's user avatar

3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Open

pacav69 opened this issue

Jul 14, 2022

· 4 comments

Assignees

@per1234

Comments

@pacav69

Describe the problem

compiling any sketch this error occured:

xtensa-lx106-elf-g++: error: unrecognized command line option ‘-std=gnu++17’

exit status 1

Compilation error: exit status 1

Version: 2.0.0-rc8
Date: 2022-06-23T09:37:18.120Z
CLI Version: 0.24.0 [c1b10f56]

Copyright © 2022 Arduino SA

To reproduce

compiling sketch

Expected behavior

error message «unrecognized command line option ‘-std=gnu++17′»

Arduino IDE version

Version: 2.0.0-rc8 Date: 2022-06-23T09:37:18.120Z CLI Version: 0.24.0 [c1b10f56]

Operating system

macOS

Operating system version

11.6.5 (20G527)

Additional context

No response

Issue checklist

  • I searched for previous reports in the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details

@per1234

Hi @pacav69. Thanks for your report.

I’m going to ask you to provide some additional information that might help us to identify the problem.

Please do this:

  1. Select File > Preferences from the Arduino IDE menus.
  2. Check the box next to «Show verbose output during: > ☐ compilation«
  3. Click the OK button.
  4. Select Sketch > Verify/Compile from the Arduino IDE menus.
  5. Wait for the compilation to fail.
  6. Right click on the black «Output» panel at the bottom of the Arduino IDE 2.x window.
  7. From the context menu, click «Copy All«.
  8. Paste the error messages in a reply here.
    In order to ensure the text is not corrupted, please use code fencing.

@pacav69

@per1234 here tis

Using board 'generic' from platform in folder: /Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2
Using core 'esp8266' from platform in folder: /Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2
Detecting libraries used...
/Users/silvermac/Library/Arduino15/packages/wifiduck/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/include -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/lwip2/include -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/libc/xtensa-lx106-elf/include -I/private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/core -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_GENERIC -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD="ESP8266_GENERIC"" -DLED_BUILTIN=2 -DFLASHMODE_DOUT -DESP8266 -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266 -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/variants/generic /private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/sketch/ESP32_Blink.ino.cpp -o /dev/null
Error while detecting libraries included by /private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/sketch/ESP32_Blink.ino.cpp
Generating function prototypes...
/Users/silvermac/Library/Arduino15/packages/wifiduck/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/include -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/lwip2/include -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/sdk/libc/xtensa-lx106-elf/include -I/private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/core -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_GENERIC -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD="ESP8266_GENERIC"" -DLED_BUILTIN=2 -DFLASHMODE_DOUT -DESP8266 -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266 -I/Users/silvermac/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/variants/generic /private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/sketch/ESP32_Blink.ino.cpp -o /private/var/folders/0h/x0r4yc395m967xr3vsbn979w0000gn/T/arduino-sketch-36C8B8552CB7B49A4088B2C8E93E85CB/preproc/ctags_target_for_gcc_minus_e.cpp
xtensa-lx106-elf-g++: error: unrecognized command line option '-std=gnu++17'

exit status 1

Compilation error: exit status 1

@fieldOfView

In the above output, we see that version 2.5.0-4-b40a506 of xtensa-lx106-elf-gcc, from the wifiduck package is used, instead of a much newer version of xtensa-lx106-elf-gcc from eg the esp32 package (you don’t mention what board you are trying to use). Perhaps an updated version of the wifiduck package is available. If not, uninstalling the wifiduck package will probably fix your compilation.

Note that this is not just wifiduck that may be a problem. For me it was the digistump package, which also comes with an outdated xtensa gcc version. It seems the Arduino IDE picks a version «at random», instead of the version that comes with the package appropriate for the chosen board.

@ethanak

There is probably problem of arduino-cli, not arduino IDE. I noticed same behavior using standalone arduino-cli from command line.
Dirty workaround: edit platform.txt file and replace line:

compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path}/bin/

with

compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path-VERSION}/bin/

where VERSION is folder name in tools/xtensa-lx106-elf-gcc/
For example: for 3.02 version of esp8266 package it will be:

compiler.path={runtime.tools.xtensa-lx106-elf-gcc-3.0.4-gcc10.3-1757bed.path}/bin/

I am not trying to install anything. But the error message

gcc: error: unrecognized command line option ‘--showme:link’

pops up as the first line in my terminal whenever I launch it.

The problem existed in 14.04 and still exists after upgrading to 16.04.

Any idea why this happens and possible solutions?

The output of cat ~/.bashrc reads

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
source /opt/openfoam30/etc/bashrc

The output of cat /opt/openfoam30/etc/bashrc is

#----------------------------------*-sh-*--------------------------------------
# =========                 |
# \      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
#  \    /   O peration     |
#   \  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
#    \/     M anipulation  |
#------------------------------------------------------------------------------
# License
#     This file is part of OpenFOAM.
#
#     OpenFOAM is free software: you can redistribute it and/or modify it
#     under the terms of the GNU General Public License as published by
#     the Free Software Foundation, either version 3 of the License, or
#     (at your option) any later version.
#
#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
#     for more details.
#
#     You should have received a copy of the GNU General Public License
#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
#
# File
#     etc/bashrc
#
# Description
#     Startup file for OpenFOAM
#     Sourced from ~/.profile or ~/.bashrc
#     Should be usable by any POSIX-compliant shell (eg, ksh)
#
#------------------------------------------------------------------------------

export WM_PROJECT=OpenFOAM
export WM_PROJECT_VERSION=3.0.1

################################################################################
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
#
# either set $FOAM_INST_DIR before sourcing this file or set
# 'foamInstall' below to where OpenFOAM is installed
#
# Location of the OpenFOAM installation
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foamInstall=/opt
# foamInstall=~$WM_PROJECT
# foamInstall=/opt/$WM_PROJECT
# foamInstall=/usr/local/$WM_PROJECT
#
# END OF (NORMAL) USER EDITABLE PART
################################################################################

#
# These are the defaults for this version which should generally be
# overridden from the prefs.sh file or from command-line specification
#
#- note the location for later use (eg, in job scripts)
: ${FOAM_INST_DIR:=$foamInstall}; export FOAM_INST_DIR

#- Compiler location:
#    foamCompiler= system | ThirdParty (OpenFOAM)
foamCompiler=system

#- Compiler:
#    WM_COMPILER = Gcc | Gcc45 | Gcc46 | Gcc47 | Gcc48 | Gcc49| Clang | Icc
export WM_COMPILER=Gcc
unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH

#- Memory addressing:
#    On a 64bit OS this can be 32bit or 64bit
#    On a 32bit OS addressing is 32bit and this option is not used
#    WM_ARCH_OPTION = 32 | 64
export WM_ARCH_OPTION=64

#- Precision:
#    WM_PRECISION_OPTION = DP | SP
export WM_PRECISION_OPTION=DP

#- Label size:
#    WM_LABEL_SIZE = 32 | 64
export WM_LABEL_SIZE=32

#- Optimised, debug, profiling:
#    WM_COMPILE_OPTION = Opt | Debug | Prof
export WM_COMPILE_OPTION=Opt

#- MPI implementation:
#    WM_MPLIB = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPICH | MPICH-GM | HPMPI
#               | MPI | QSMPI | SGIMPI
export WM_MPLIB=SYSTEMOPENMPI

#- Operating System:
#    WM_OSTYPE = POSIX | ???
export WM_OSTYPE=POSIX

#- Floating-point signal handling:
#    set or unset
export FOAM_SIGFPE=

#- memory initialisation:
#    set or unset
#export FOAM_SETNAN=


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

# The old dirs to be cleaned from the various environment variables
# - remove anything under top-level directory.
# NB: the WM_PROJECT_INST_DIR might not be identical between versions
foamOldDirs="$FOAM_INST_DIR $WM_PROJECT_SITE $HOME/$WM_PROJECT/$USER"
if [ "$WM_PROJECT_INST_DIR" != "$FOAM_INST_DIR" ]
then
    foamOldDirs="$WM_PROJECT_INST_DIR $foamOldDirs"
fi


# Location of installation
# ~~~~~~~~~~~~~~~~~~~~~~~~
export WM_PROJECT_INST_DIR=$FOAM_INST_DIR
export WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/openfoam30

# Location of third-party software
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION

# Location of site-specific templates etc
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# unset is equivalent to $WM_PROJECT_INST_DIR/site
if [ -d "$WM_PROJECT_SITE" ]
then
    export WM_PROJECT_SITE
else
    unset WM_PROJECT_SITE
fi

# Location of user files
# ~~~~~~~~~~~~~~~~~~~~~~
export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION


# Source files, possibly with some verbosity
_foamSource()
{
    while [ $# -ge 1 ]
    do
        [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "Sourcing: $1" 1>&2
        . $1
       shift
    done
}

# Evaluate command-line parameters
_foamEval()
{
    while [ $# -gt 0 ]
    do
        case "$1" in
        -*)
            # stray option (not meant for us here) -> get out
            break
            ;;
        *=)
            # name=       -> unset name
            [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "unset ${1%=}" 1>&2
            eval "unset ${1%=}"
            ;;
        *=*)
            # name=value  -> export name=value
            [ "$FOAM_VERBOSE" -a "$PS1" ] && echo "export $1" 1>&2
            eval "export $1"
            ;;
        *)
            # filename: source it
            if [ -f "$1" ]
            then
                _foamSource "$1"
            else
                _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile -silent "$1"`
            fi
            ;;
        esac
        shift
    done
}


# Add in preset user or site preferences:
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh`

# Evaluate command-line parameters and record settings for later
# these can be used to set/unset values, or specify alternative pref files
export FOAM_SETTINGS="$@"
_foamEval $@

# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foamClean=$WM_PROJECT_DIR/bin/foamCleanPath

#- Clean PATH
cleaned=`$foamClean "$PATH" "$foamOldDirs"` && PATH="$cleaned"

#- Clean LD_LIBRARY_PATH
cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"` 
    && LD_LIBRARY_PATH="$cleaned"

#- Clean MANPATH
cleaned=`$foamClean "$MANPATH" "$foamOldDirs"` && MANPATH="$cleaned"

export PATH LD_LIBRARY_PATH MANPATH


# Source project setup files
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource $WM_PROJECT_DIR/etc/config/settings.sh
_foamSource $WM_PROJECT_DIR/etc/config/aliases.sh


# Source user setup files for optional packages
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/paraview.sh`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/ensight.sh`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/gperftools.sh`
_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config/CGAL.sh`


# Clean environment paths again. Only remove duplicates
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#- Clean PATH
cleaned=`$foamClean "$PATH"` && PATH="$cleaned"

#- Clean LD_LIBRARY_PATH
cleaned=`$foamClean "$LD_LIBRARY_PATH"` && LD_LIBRARY_PATH="$cleaned"

#- Clean MANPATH (trailing ':' to find system pages)
cleaned=`$foamClean "$MANPATH"`: && MANPATH="$cleaned"

export PATH LD_LIBRARY_PATH MANPATH

#- Clean LD_PRELOAD
if [ -n "$LD_PRELOAD" ]
then
    cleaned=`$foamClean "$LD_PRELOAD"` && LD_PRELOAD="$cleaned"
    export LD_PRELOAD
fi


# cleanup environment:
# ~~~~~~~~~~~~~~~~~~~~
unset cleaned foamClean foamInstall foamOldDirs
unset _foamSource _foamEval

# ----------------------------------------------------------------- end-of-file

This comprehensive guide will walk you through how to fix the unrecognized command line option -std=c++11 error that developers may face when compiling C++11 code using GCC or Clang compilers. We’ll provide a step-by-step solution to help you resolve this issue and move forward with your development.

Table of Contents

  1. Overview
  2. Prerequisites
  3. Step-by-step solution
  4. FAQs

Overview

The -std=c++11 flag is used to instruct the compiler to use the C++11 standard when compiling your code. However, some developers may face an error that looks like this:

g++: error: unrecognized command line option '-std=c++11'

This error usually occurs when your compiler doesn’t support C++11, or you’re using an older version of the compiler that doesn’t recognize the -std=c++11 flag.

Prerequisites

Before proceeding, make sure you have the following:

  1. A C++ source file that uses features from the C++11 standard.
  2. A GCC or Clang compiler installed on your machine.

Step-by-step solution

Here’s a step-by-step guide to fixing the unrecognized command line option -std=c++11 error:

Step 1: Check your compiler version

First, you need to check the version of your compiler to ensure it supports C++11. You can do this by running the following command in your terminal or command prompt:

For GCC:

g++ --version

For Clang:

clang --version

Note: C++11 support was introduced in GCC 4.8.1 and Clang 3.3. Make sure your compiler version is at least this version or higher.

Step 2: Update your compiler (if necessary)

If your compiler version is older than the versions mentioned above, you’ll need to update it to a newer version that supports C++11. You can follow these guides to update your compiler:

  • How to update GCC on Ubuntu
  • How to update GCC on Windows using MinGW
  • How to update Clang on macOS

Step 3: Compile your code with the correct flag

Once you’ve ensured that your compiler supports C++11, you can compile your code using the -std=c++11 flag:

For GCC:

g++ -std=c++11 your_source_file.cpp -o your_output_file

For Clang:

clang++ -std=c++11 your_source_file.cpp -o your_output_file

Step 4: Verify the issue is resolved

After compiling your code with the correct flag, you should no longer see the unrecognized command line option -std=c++11 error. You can now continue with your development.

FAQs

What is the C++11 standard?

The C++11 standard, also known as C++0x, is a version of the C++ programming language that introduces several new features and improvements over previous standards. Some of these features include lambda expressions, range-based for loops, and smart pointers. You can learn more about C++11 by reading this overview.

Can I use other C++ standards in my code?

Yes, you can use other C++ standards by specifying the appropriate flag when compiling your code. For example, you can use -std=c++14 for the C++14 standard, -std=c++17 for the C++17 standard, and so on.

How do I know which C++ standard my code is using?

You can check which C++ standard your code is using by including the following lines in your code:

#include <iostream>
int main() {
    std::cout << "C++ version: " << __cplusplus << std::endl;
    return 0;
}

This will print the C++ version your code is compiled with when you run the program.

Do I need to update my compiler if I want to use newer C++ standards?

Yes, you’ll need to update your compiler if you want to use newer C++ standards since support for new features is added in newer compiler versions. Make sure to check the compiler’s release notes to see which versions support the C++ standard you want to use.

Can I use the -std=c++11 flag with other compilers?

Yes, most modern C++ compilers support the -std=c++11 flag or an equivalent flag. If you’re using a different compiler, check its documentation to see how to specify the C++11 standard.

1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

1

24.01.2018, 08:00. Показов 11885. Ответов 25


Студворк — интернет-сервис помощи студентам

помогите, пожалуйста, код не компилируется. что это за ошибка?
||=== Build: Debug Win32 in ptprj (compiler: GNU GCC Compiler) ===|
||unrecognized command line option «-std=c++11″|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|



0



с++

1282 / 523 / 225

Регистрация: 15.07.2015

Сообщений: 2,562

24.01.2018, 08:19

2

где код?



0



lukinyx99

1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 10:52

 [ТС]

3

Цитата
Сообщение от Antikl
Посмотреть сообщение

где код?

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <iomanip>
 
using namespace std;
struct client
{
    int hour,year,mounth,client_num;
};
void sort_of_mas(client a[100],int n)
{ 
    client* p[100];
    for (int i=0;i<n;i++)
        p[i]= &a[i];
    for (int i=n-1;i>0;i--)
        for (int j=0;j<i;j++)
            if ((p[j]->hour>p[j+1]->hour)||(p[j]->hour==p[j+1]->hour&&p[j]->year<p[j+1]->year)||(p[j]->hour==p[j+1]->hour&&p[j]->year==p[j+1]->year&&p[j]->mounth>p[j+1]->mounth))
                swap (p[j],p[j+1]);
    for (int i=0;i<n;i++)
        cout << p[i]->hour <<' ' << p[i]->year << ' ' <<p[i]->mounth <<'n';
}
int main()
{
 
    int n,k=0;
    bool check=1;
    client c,a[11][12],mas[100];
    cin>> n;
    for (int i=0;i<11;i++)
        for(int j=0;j<12;j++)
            a[i][j].hour=0;
    for (int i=0;i<n;i++)
    {
        cin >> c.client_num >> c.year >> c.mounth >> c.hour;
        a[c.year-2000][c.mounth-1].hour +=c.hour;
        a[c.year-2000][c.mounth-1].year=c.year;
        a[c.year-2000][c.mounth-1].mounth=c.mounth;
    }
    for (int i=0;i<11;i++)
        for (int j=0;j<12;j++)
            if(a[i][j].hour)
            {
                mas[k].hour=a[i][j].hour;
                mas[k].mounth=a[i][j].mounth;
                mas[k].year=a[i][j].year;
                k++;
            }
    sort_of_mas(mas,k);
}

Добавлено через 2 часа 8 минут
помогите мне, пожалуйста



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 13:16

4

покажите окно Settings>Compiler Settings



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 13:25

 [ТС]

5

как сюда скрин вставить?

Добавлено через 2 минуты
Starikov,

Цитата
Сообщение от lukinyx99
Посмотреть сообщение

как сюда скрин вставить



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 13:30

6

ниже поля для ввода сообщения есть поле «Загрузить файлы» там выбираете управление вложениями, у вас появляется новое окно браузера, там выбираете нужные файлы, нажимаете загрузить, отправляете сообщение



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 13:37

 [ТС]

7

Starikov, вообще не работает эта кнопка
что Вам нужно написать? в ручную напечатаю



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 13:43

8

1. скажите какой компилятор у вас подключен к Code::Blocks.
2. Какие галочки стоят в Settings>Compiler Settings>Compiler Flags>General
3. Что написано в Settings>Compiler Settings>Other compiler options



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 14:25

 [ТС]

9

Starikov[/nick], 1. MinGW 2. никаких нет 3. other settings: написано complier loggin:full command line

Добавлено через 1 минуту
Starikov,



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 14:30

 [ТС]

10

вот

Миниатюры

Ошибка компиляции в Code::Blocks - unrecognized command line option "-std=c++11"
 



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 14:31

 [ТС]

11

Starikov,

Миниатюры

Ошибка компиляции в Code::Blocks - unrecognized command line option "-std=c++11"
 



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 14:35

12

Вот как стоит у меня, ваш код запускается

Миниатюры

Ошибка компиляции в Code::Blocks - unrecognized command line option "-std=c++11"
 

Ошибка компиляции в Code::Blocks - unrecognized command line option "-std=c++11"
 



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 14:38

 [ТС]

13

Starikov, где галочку в complier flags поставить?



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 14:41

14

там где написано -std=c++11 поставьте



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 14:43

 [ТС]

15

Starikov, у меня нет такого, у меня -std=c++98 -std=c++0x



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 14:45

16

Цитата
Сообщение от lukinyx99
Посмотреть сообщение

-std=c++0x

поставьте

Добавлено через 59 секунд
не знаю почему у вас так не работает, у меня работает



0



411 / 146 / 48

Регистрация: 02.06.2016

Сообщений: 331

24.01.2018, 14:55

17

Цитата
Сообщение от Starikov
Посмотреть сообщение

не знаю почему у вас так не работает, у меня работает

Потому у вас разные версии у него 13 у вас 16, а вообще уже 17 вышла.
lukinyx99, качайте новую версию C::B.



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 15:02

 [ТС]

18

Starikov, что не так у меня?

Добавлено через 29 секунд
GoshaM, ладно, сейчас попробую

Добавлено через 1 минуту
GoshaM, а чем плох 13.12?
нигде новее не нашла просто



0



13 / 15 / 5

Регистрация: 16.10.2016

Сообщений: 206

24.01.2018, 15:04

19

Цитата
Сообщение от lukinyx99
Посмотреть сообщение

что не так у меня?

Вам уже ответили, попробуйте обновить C::B

Добавлено через 1 минуту

Цитата
Сообщение от lukinyx99
Посмотреть сообщение

нигде новее не нашла просто

Официальный сайт C::B
http://www.codeblocks.org/downloads/26



0



1 / 5 / 0

Регистрация: 16.10.2017

Сообщений: 170

24.01.2018, 15:19

 [ТС]

20

GoshaM, там такая же ошибка



0



Понравилась статья? Поделить с друзьями:
  • Unreal engine 4 ошибка установки
  • Unreal engine 4 ошибка компиляции
  • Unreal engine 4 ошибка lighting needs to be rebuilt
  • Unreal engine 4 выдает ошибку
  • Unrar dll вернул код ошибки 14