在标题中,当我尝试通过运行此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
我收到以下错误:
$ bash compile
compile: line 6: -std=c++11: command not found
关于事物的其他错误仅在stdc ++ 11中可用。 我已经尝试过对错误进行抨击,但我只得到关于实际命令不是参数的错误的答案。
答案 0 :(得分:8)
变量赋值对空间敏感。变化:
cppflags=-Wall -std=c++11 -ggdb -O
到
cppflags="-Wall -std=c++11 -ggdb -O"
否则,您尝试使用包含-std=c++11 -ggdb -O
设置的环境运行命令cppflags=-Wall
。 bash允许以这种方式完成临时环境设置,这就是引用任何包含空格的变量赋值的重要原因。