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

Vin*_*ive 1 c++

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

Test.h

int function1(int);
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

Main.cpp的

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

int main(){

    function1(5);
}
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*CAT 6

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

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

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

g++ -o Main Main.cpp Test.cpp
Run Code Online (Sandbox Code Playgroud)

要么

g++ -c -o Main.o Main.cpp
g++ -c -o Test.o Test.cpp
g++ -o Main Main.o test.o
Run Code Online (Sandbox Code Playgroud)