导出 .h 文件中的定义

sur*_*n99 5 c assembly preprocessor

我必须在 .S 文件中包含 .h 中的一些宏。.h 还包含 c 声明。因此我使用了定义

gcc -E -dM header.h > generated_header.h

generated_header.h还具有所有预定义的宏和标准符号。

现在 gcc -Iinclude/ asm.S -o asm.o 给出以下警告的数量

warning: "__GCC_ATOMIC_LLONG_LOCK_FREE" redefined warning: "__GCC_ATOMIC_SHORT_LOCK_FREE" redefined warning: "__STDC__" redefined ETC...

这是因为我们通过在asm.S中包含generated_header.h再次重新定义相同的宏

我检查了所有预处理器选项以仅提取本地定义。但没有任何帮助。有没有其他方法可以解决这个问题。有没有其他方法可以让 asm.S 知道这些宏?