有人可以向我解釋這個嗎?鏈接器說未定義的函數參考
的文件如下:
file a.c
#include <stdio.h>
#include <stdlib.h>
int fun1();
int main()
{
fun1();
return 0;
}
文件B被寫爲:
file b.c
static int fun1();
int fun1(){
printf("fron fun1");
return 0;
}
當我嘗試編譯我的代碼,編譯器提供了一個錯誤:未定義的引用FUN1。 如果我在文件b.c中聲明fun1 static,這意味着什麼?
'static'表示函數的作用域限於你聲明的模塊(文件)。所以你需要刪除文件'b.c'中的'static'聲明。通過'b.c'中的'static'聲明,'a.c'不能訪問'fun1'。 – lurker
您確定這是一個編譯器錯誤而不是鏈接器錯誤? – Dabbler
請發佈您用於編譯的命令行。 @Dabbler表示,您可能正在查看鏈接器錯誤。 –