gpt4 book ai didi

c++ - Scons 选择哪个版本的g++ |无法识别的命令行选项 "-std=c++11"

转载 作者:行者123 更新时间:2023-11-28 03:08:09 24 4
gpt4 key购买 nike

我在 OpenSUSE 中使用 Scons 2.3.0 时遇到问题:

当我添加“-std=c++11”选项时,我看到了错误

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

我意识到这是因为我的 g++ 版本太旧 (4.1)。所以我把它升级到 4.7.1。下面的事情也做了

  1. 我将 g++4.7.1 的路径移动到 $PATH 中的第一位(在/usr/bin 之前)
  2. 当我尝试

      which g++

    我看到它显示了我的新 g++4.7.1 的路径

  3. 当我尝试 g++ -v 时,我还看到了版本 4.7.1

  4. 在不使用 scons 的情况下,如果我尝试使用 g++ -std=c++11 helloWorld.cpp 构建一个简单的 helloWorld,一切正常。

  5. 现在通过使用 scons,我看到了 cc1plus: error: unrecognized command line option "-std=c++11"

  6. 我什至在我的 SConstruct 文件中添加了 s.system("g++ -v"),它仍然打印出正确的版本 (4.7.1)

所以我不确定我哪里做错了。

请给我一些建议

在此先感谢您的帮助!

最佳答案

SCons 默认选择旧版本的编译器。

执行 os.system("g++ -v") 将使用您的 PATH,但 SCons 内部不使用 PATH 来查找编译器,它会在标准位置查找。

如果你不能卸载旧版本的编译器,你可能要明确指出新的编译器。这可以通过在环境中设置一些构造变量来完成,如下所示:

env = Environment()
env.Replace(CXX='path/g++')
env.Replace(CC='path/gcc')

可以找到所有构造变量here .

关于c++ - Scons 选择哪个版本的g++ |无法识别的命令行选项 "-std=c++11",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19171576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com