C ++如何将我的主类与我的头文件链接?

时间:2016-02-21 02:50:27

标签: c++

这是基本的,但我有一个带有函数原型的头文件Test.h。然后是一个带有函数定义Test.cpp的源代码文件。最后我有我的Main.cpp文件调用Test.cpp中的函数。问题是我在Main.cpp中收到错误,指出function1未定义。你能看出我做错了吗?

Test.h

int function1(int);

Test.cpp的

#include "Test.h"
#include <iostream>

int main(){
}

int function1(int i){
    std::cout << "fuction1(" << i << ")" << std::endl << "Returns: 1" << std::endl;

    return 1;
}

Main.cpp的

#include <iostream>
#include "Test.h"

int main(){

    function1(5);
}

在我添加main()函数之前,Test.cpp也没有编译。我对java非常流利,这似乎与我的想法相矛盾。在java中,我只有一个main方法可以在我的主类中找到。其他类有一个构造函数。请帮我建立从java到c ++的连接。

1 个答案:

答案 0 :(得分:6)

你必须告诉编译器它应该链接什么。

首先,删除main()test.cpp的定义,因为尝试在一个可执行文件中将多个非静态main()放在全局命名空间中会导致链接错误。

然后,正确使用您的编译器。例如,如果您使用GCC,

g++ -o Main Main.cpp Test.cpp

g++ -c -o Main.o Main.cpp
g++ -c -o Test.o Test.cpp
g++ -o Main Main.o test.o