提问者:小点点

GCC C++编译选项-MCPU


调用GCC时,可以提供“-MCPU=cortex-M4”形式的选项来指定CPU类型。

有没有一种在运行时获取调用GCC的-m CPU字符串的方法??

谢谢


共2个答案

匿名用户

您可以通过一些巧妙的编译来实现这一点。 例如,如果您使用makefile,则可以将标志放入变量中,然后使用该变量设置使用gcc-d标志的宏,如下所示:

COMPILER_FLAGS=-std=c++11 -thread -O3

program: program.cpp
    $(CXX) -DEXTERNAL_COMPILER_FLAGS="\"$(COMPILER_FLAGS)\"" $(COMPILER_FLAGS) -o $@ $< 

那么在C++源文件中,您可以拥有:

#include <iostream>

#ifndef EXTERNAL_COMPILER_FLAGS
#define COMPILER_FLAGS "not set"
#else
#define COMPILER_FLAGS EXTERNAL_COMPILER_FLAGS
#endif

int main()
{
    std::cout << COMPILER_FLAGS << '\n';
}

如果您不使用makefile,您应该能够在您使用的任何构建系统中找到等效的方法。

匿名用户

GCC有-frecord-gcc-switches选项。 它将使您的二进制文件记录/包含所使用的编译器选项,在一个特殊的部分中,稍后可以提取该部分。

没有那个选项,就没有办法知道。

详情请访问https://gcc.gnu.org/onlinedocs/gcc/code-gen-options.html

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(gcc|c++|编译|选项|mcpu)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?