我正在使用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;
}
答案 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