我有一個名爲「main.c」的程序,它包含調用一個函數的main(),該函數的定義在其他名爲「nim.c」的源文件中可用。我創建了一個名爲「nim.h」的頭文件,其中包含所需方法的原型。這個頭文件「nim.h」已經包含在我的「main.c」中。我把所有的文件都包含在這個程序中。鏈接器錯誤未定義引用'print'
//main.c
#include <stdio.h>
#include "nim.h"
int main()
{
print();
return 0;
}
//nim.h
#include<stdio.h>
void print();
//nim.c
#include<stdio.h>
void print()
{
printf("hello !!");
}
你編譯過nim.c和main.c嗎?如果沒有這個,編譯器會找到'print'的定義(通過include),但是鏈接器將無法找到它的實現。 – simonc 2013-02-14 09:36:22
您需要鏈接到目標文件'gcc main.c nim.o',或將它們一起編譯爲'gcc main.c nim.c'。 – 2013-02-14 09:36:33
先生,實際上當我編譯nim.c時,它在nim.h中給出了下面對'WinMain @ 16' – user2064676 2013-02-14 09:57:51