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

C++ how can I link my main class with my header file?

本文关键字:我的 文件 链接 起来 C++      更新时间:2023-10-16

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

测试.h

int function1(int);

测试.cpp

#include "Test.h"
#include <iostream>
int main(){
}
int function1(int i){
    std::cout << "fuction1(" << i << ")" << std::endl << "Returns: 1" << std::endl;
    return 1;
}

主.cpp

#include <iostream>
#include "Test.h"
int main(){
    function1(5);
}

另外 Test.cpp 直到我添加了一个 main() 函数才编译。我精通Java,这似乎与我的想法相矛盾。在java中,我只有一个主方法,可以在我的主类中找到。其他类具有构造函数。请帮助我建立从java到c ++的连接。

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

首先,删除test.cppmain()的定义,因为尝试将多个非静态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