尝试使用g ++编译目标文件时出现"-std = c ++ 11:command not found"错误

dig*_*her 3 c++ linux variables bash gcc

在标题中,当我尝试通过运行此shell脚本使用g ++编译目标文件时:

#!/bin/bash
name=textsweeper
srcdir=src
buildir=build
cc=g++
cppflags=-Wall -std=c++11 -ggdb -O
libs=
rm -f $buildir/$name $buildir/main.o
$cc $cppflags $srcdir/main.cpp -c -o $buildir/main.o
$cc $buildir/main.o $libs -o $buildir/$name
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

$ bash compile
compile: line 6: -std=c++11: command not found
Run Code Online (Sandbox Code Playgroud)

关于事物的其他错误仅在stdc ++ 11中可用.我已经尝试过了解错误,但我只得到关于实际命令不是参数的错误的答案.

Sha*_*ger 8

变量赋值对空间敏感.更改:

cppflags=-Wall -std=c++11 -ggdb -O
Run Code Online (Sandbox Code Playgroud)

cppflags="-Wall -std=c++11 -ggdb -O"
Run Code Online (Sandbox Code Playgroud)

否则,您尝试-std=c++11 -ggdb -O使用包含设置的环境运行命令cppflags=-Wall.bash允许以这种方式完成临时环境设置,这就是引用包含空格的任何变量赋值的重要原因.