我在编译时编写简单的头文件我得到了错误
/tmp/ccOH3HcX.o: In function `main':
sample.c:(.text+0x15): undefined reference to `f'
collect2: error: ld returned 1 exit status
whatever.h
#ifndef WHATEVER_H_INCLUDED
#define WHATEVER_H_INCLUDED
int f(int a);
#endif
示例whatever.c
#include "whatever.h"
int f(int a) { return a + 1; }
sample.c文件
#include "whatever.h"
int main(int argc, char **argv)
{
printf("%d\n", f(2)); /* prints 3 */
return 0;
}
编译它:
$ gcc -c whatever.c -o whatever.o
$ gcc -c sample.c -o sample.o
答案 0 :(得分:2)
您需要在第二个gcc编译行中包含对象文件whatever.o。
一个简单的>> G1 = 1/(s*(s-1));
>> G2 = 1/(s*(s-1));
>> G1 == G2 % won't work..
应该这样做
答案 1 :(得分:2)
您只给出了创建对象文件的编译器步骤,而不是可执行文件。我想你做了类似
的事情gcc sample.c -o sample
之后然后得到了错误?
您必须链接目标文件以获取可执行文件,如下所示:
gcc whatever.o sample.o -o executable_file