【发布时间】:2020-11-01 20:23:14
【问题描述】:
在调用 GCC 时,提供“-mcpu=cortex-m4”形式的选项来指定 CPU 类型。
有没有办法在运行时获取调用 GCC 的 -m CPU 字符串??
谢谢
【问题讨论】:
标签: c++ gcc compilation options
在调用 GCC 时,提供“-mcpu=cortex-m4”形式的选项来指定 CPU 类型。
有没有办法在运行时获取调用 GCC 的 -m CPU 字符串??
谢谢
【问题讨论】:
标签: c++ gcc compilation options
您可以通过一些巧妙的编译来实现这一点。例如,如果您使用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,您应该能够在您使用的任何构建系统中找到等效方法。
【讨论】:
-frecord-gcc-switches?
GCC 有 -frecord-gcc-switches 选项。它将导致您的二进制文件记录/包含使用的编译器选项,在一个特殊的部分中,然后可以稍后提取。
没有这个选项,就无法知道。
在https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html查看详细信息
【讨论】: