我在我的Geany項目中有一個奇怪的問題。該項目非常簡單,包含3個文件,全部位於同一目錄中:main.c
,foo.h
和foo.c
。Geany項目包括編譯器錯誤
編譯器錯誤:
In file included from main.c:1:0:
foo.h:4:12: warning: ‘bar’ used but never defined
static int bar(void);
^
/tmp/cc0zCvOX.o: In function `main':
main.c:(.text+0x12): undefined reference to `bar'
Compilation failed.
collect2: error: ld returned 1 exit status
到底哪裏出問題了?
的main.c:
#include "foo.h"
int main(int argv, char* argc[])
{
bar();
return 0;
}
了foo.h:
#ifndef _FOO_H_
#define _FOO_H_
static int bar(void);
#endif // _FOO_H_
foo.c的:
#include "foo.h"
#include <stdio.h>
static int bar(void)
{
printf("Hello World\n");
return 1;
}
項目不包括gcc的正確調用。請更新Build-> Set Build命令和/或考慮使用makefile。您首先要編譯foo.c並將其設爲目標文件,而不是編譯main.c.也許預編譯foo.c的命令對你來說效果不錯,但是你必須證明它。 – frlan