У меня есть файл сборки (asm.S
), которому требуется постоянная #define
'd в файле заголовка C (c_decls.h
).Заголовочный файл содержит объявления функций C в дополнение к #define
, который я хочу.К сожалению, gcc
barfs при попытке скомпилировать файл сборки.Например,
c_decls.h
#ifndef __c_decls_h__
#define __c_decls_h__
#define I_NEED_THIS 0xBEEF
int foo(int bar);
#endif
asm.S
#include "c_decls.h"
.globl main
main:
pushl %ebp
movl %esp, %ebp
movl $I_NEED_THIS, %eax
leave
ret
Выход
> gcc -m32 asm.S
c_decls.h: Сообщения ассемблера:
c_decls.h: 6: Ошибка: нежелательная '(int bar)' после выражения
c_decls.h: 6: Ошибка: суффикс или операнды недопустимы для 'int'
Есть ли способ #include
заголовочный файл C, который содержит объявления функций в файле сборки?(Изменение заголовка или перемещение / переопределение #define
не вариант.)