调用GCC时,可以提供“-MCPU=cortex-M4”形式的选项来指定CPU类型。
有没有一种在运行时获取调用GCC的-m CPU字符串的方法??
谢谢
您可以通过一些巧妙的编译来实现这一点。 例如,如果您使用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