链接器错误未定义引用`print'

时间:2013-02-14 09:35:30

标签: c linker-errors undefined-reference

我有一个名为“main.c”的程序,其中包含main(),该函数调用一个函数,该函数的定义在名为“nim.c”的其他源文件中可用。我创建了一个名为“nim.h”的头文件,其中包含所需方法的原型。这个头文件“nim.h”已经包含在我的“main.c”中了。我正在提供属于该计划的所有文件。

 //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 !!"); 
    }

2 个答案:

答案 0 :(得分:1)

你必须告诉链接器,你的可执行文件包含两个目标文件(main.o和nim.o)以及所有专有的东西(如libc,win32等)。

使用gcc编译C源代码:

gcc nim.c -o nim.o
gcc main.c nim.o <libraries> -o main.exe

答案 1 :(得分:0)

我使用了以下命令并且都成功了。

gcc main.c nim.c -o nim

尝试上面的命令来构建并告诉我你到底发生了什么错误?