如标题所示,当我尝试通过运行此 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 的内容的错误。 我试过 yahooing 错误,但我只得到了关于实际命令错误的答案,而不是参数。
最佳答案
变量赋值是空间敏感的。变化:
cppflags=-Wall -std=c++11 -ggdb -O
到
cppflags="-Wall -std=c++11 -ggdb -O"
否则,您将尝试在包含 cppflags=-Wall
设置的环境中运行命令 -std=c++11 -ggdb -O
。 bash 允许以这种方式完成临时环境设置,这就是为什么引用任何包含空格的变量赋值很重要。
关于c++ - 尝试使用 g++ 编译目标文件时出现 "-std=c++11: command not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41524259/