嗯,我有一个头(my_prog.h),它看起来是这样的:在头文件中包含头文件并不会将它包含在实现文件中 - 或者我只是使用错误的命令进行编译?
#ifndef __MY_HEADER_H
#define __MY_HEADER_H
#include <stddef.h>
typedef struct {
size_t something;
size_t something_else;
}
void my_func();
#endif
和执行文件(my_prog.c)我放哪儿:
#include "my_prog.h"
static size_t min(size_t a, size_t b) {...}
void my_func() {...}
当我尝试编译my_prog .C到目标文件(我需要它与其他文件链接)I FET:
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘min’
我使用的编译的命令是:
gcc -c my_prog.c -o my_prog.h
有没有错误说它找不到源代码。当我包含在实现文件中时,它将编译没有问题。
后最低编译代码,请。 –
我试图重现你的问题。我没有得到那个错误信息。我得到的是'my_prog.h:8:1:error:expected';',identifier或'('before'void''。(另外,我建议使用'-Wall'或者'-Wextra'当使用'gcc'编译时) – ibid
请投票结束问题,正如@ k_wisniewski的下面的注释所述,由于使用了'ifdef'而不是'ifndef',所以这是一个错误 – INS