我正在做一个练习(来自C++的第三章),但是我在连接两个.cpp文件时遇到了问题。
这是一项工作:
创建一个头文件(扩展名为“.h”)。在这个文件中,通过更改参数列表和返回值来声明一组函数: void、char、int和float。现在创建一个包含头文件的.cpp文件,并为所有这些函数创建定义。每个定义都应该简单地打印出函数名、参数列表和返回类型,这样您就知道它已经被调用了。创建第二个包含头文件并定义int ( )的.cpp文件,其中包含对所有函数的调用。编译并运行您的程序。
我已经创建了这三个文件,但是当我试图编译编译器时,请给出以下错误:
未定义的对
func1()' undefined reference tofunc2(Int)‘>的引用
对func3(char, int, double)'| undefined reference tofunc4()的未定义引用
||===构建完成:4错误,0警告===|
为什么它找不到函数声明?
##EDIT
这是我的三个档案:
func_ex.h
void func1(void);
int func2(int i);
char func3(char c, int i, double d);
float func4(void);func_ex.cpp
#include "func_ex.h"
using namespace std;
void func1(void) {
cout << "void func1(void)" << endl;
}
int func2(int i) {
cout << "int func2(int i)" << endl;
}
char func3(char c, int i, double d) {
cout << "func3(char c, int i, double d)" << endl;
}
float func4(void) {
cout << "func4(void)" << endl;
}func_ex_main.cpp
#include "func_ex.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
func1();
int i;
func2(i);
char c; double d;
func3(c, i, d);
func4();
}我是usig作为编译器(代码::块作为IDE,但我认为这并不重要)。
发布于 2014-12-13 09:51:16
我也使用代码::块,我也遇到了同样的问题。此IDE中的默认设置是只生成一个文件。下面是我所做的: project -> properties -> build ->,选择右下角部分中相关的文件。希望这能有所帮助!
https://stackoverflow.com/questions/7032709
复制相似问题