如何将一个函数从另一个文件调用到c中的main函数?

时间:2016-06-26 19:02:03

标签: c qt

我正在使用qt并创建了一个c项目。我创建了两个文件,一个头文件和源文件。我已经在头文件中声明了一个函数。所以我可以从main函数调用它。但是当我编译并运行时,我得到了#34;未定义的引用"错误。如何解决这个问题?我使用的是qt 5.5 ide。

我的代码:

头文件 chapter_1.h

#ifndef CHAPTER_1_H
#define CHAPTER_1_H

//include all header files
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

/* function declaration */
int sum(int x, int y);

#endif // CHAPTER_1_H

源文件

//include header files

#include "chapter_1.h"

int sum(int x, int y)
{
    int result = x+y;

    return result;
}

主文件:

#include "chapter_1.h" 

int main()
{
    sum(23, 23);

    return 0;
}

3 个答案:

答案 0 :(得分:6)

这不是编译器错误。这是一个链接器错误。您只需要在项目中包含两个源文件(main.cpp和chapter1.cpp)。

答案 1 :(得分:1)

我解决了这个问题。问题是,文件创建为.cpp。现在我已将其更改为.c而不是它有效。谢谢大家。

答案 2 :(得分:0)

您必须告诉qmake哪些源文件要用于生成程序。项目文件(*.pro)中定义了几个变量,它们负责此信息和其他信息。 SOURCES定义要使用的源文件,HEADERS - 您猜对了,标题。

HEADERS = chapter_1.h
SOURCES = main.cpp chapter_1.cpp