(unrecognized flag '-Zc:nrvo' in 'p2')怎么禁用?
时间: 2023-12-25 13:04:16 浏览: 334
如果你想禁用"-Zc:nrvo"这个编译选项,你可以使用以下方法:
1. 如果你使用的是 Visual Studio,可以在项目属性的“C/C++” -> “命令行”选项卡中找到该选项并将其删除。
2. 如果你使用的是 GCC 或 Clang,可以在命令行中使用"-fno-elide-constructors"选项来禁用 NRVO。
例如,你可以将编译命令从:
```
g++ -Zc:nrvo -o myprogram myprogram.cpp
```
改为:
```
g++ -fno-elide-constructors -o myprogram myprogram.cpp
```
这样就可以禁用 NRVO 优化了。
相关问题
在make prepare时报错aarch64-none-linux-gnu-gcc: error: unrecognized argument in option '-mcmodel=kernel' aarch64-none-linux-gnu-gcc: note: valid arguments to '-mcmodel=' are: large small tiny aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-sse'; did you mean '-fno-dse'? aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-mmx' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-sse2' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-3dnow' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-m64' aarch64-none-linux-gnu-gcc: error: unrecognized command-line option '-mno-red-zone' scripts/Makefile.build:273: recipe for target 'scripts/mod/empty.o' failed具体如何解决
这个错误可能是由于编译器版本不兼容或编译选项有误导致的。您可以尝试以下步骤来解决该问题:
1. 确认您使用的是正确版本的编译器。您可以尝试更新编译器或使用另一个版本的编译器。
2. 检查编译选项。在Makefile中,可能有一些选项需要根据您的编译器版本进行调整。 您可以尝试删除一些选项,或者添加一些适当的选项,例如:
-mcmodel=large
-mno-sse -fno-dse
-mno-mmx
-mno-sse2
-mno-3dnow
-mno-red-zone
3. 检查您的内核配置。您可以尝试禁用CONFIG_STRICT_KERNEL_RWX选项,并重新编译内核。
希望这些解决方案可以帮助您解决问题。
dnf config-manager: error: unrecognized arguments: -add-repo
dnf config-manager命令是用于管理DNF软件包管理器的配置选项的工具。然而,当显示出错误消息“dnf config-manager: error: unrecognized arguments: -add-repo”时,说明在命令中使用了无法识别的参数“-add-repo”。
在DNF中,正确的参数是“--add-repo”而不是“-add-repo”。这是一个典型的错误,可能是因为在输入命令时不小心多了一个连字符“-”,或者是因为没有按照正确的语法格式输入命令。
要解决这个问题,我们需要将错误参数更正为正确的格式,即“--add-repo”。请确保在使用dnf config-manager命令时,正确地输入了参数和选项。如果您仍然遇到问题,请检查您的命令是否有任何拼写错误或语法错误。
例如,正确的命令应该是:
dnf config-manager --add-repo <repository_url>
其中,<repository_url>是指要添加的软件仓库的URL。
总之,错误消息“dnf config-manager: error: unrecognized arguments: -add-repo”是因为使用了无法识别的参数。正确的参数应该是“--add-repo”,请仔细检查命令的语法格式和拼写,以解决这个问题。