【发布时间】:2016-06-02 14:04:37
【问题描述】:
这是最基本的,但我有一个带有函数原型的头文件 Test.h。然后是带有函数定义的源代码文件,Test.cpp。最后,我有调用 Test.cpp 中的函数的 Main.cpp 文件。问题是我在 Main.cpp 中收到一个错误,指出 function1 未定义。你能看出我做错了吗?
测试.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 中,我只会在我的主类中找到一个主方法。其他类有一个构造函数。请帮我建立从 java 到 c++ 的连接。
【问题讨论】:
-
"你能看出我做错了什么吗?"不,因为你没有向我们展示你是如何使用你的编译器的。
-
我在编译 Test.cpp 没有完全多余的 main() 时没有问题。在这个问题中,你没有展示你正在做的一切。从 Test.cpp 中删除 main() 后,显示的代码绝对没有问题。因此,您未显示的代码和/或其他文件/脚本一定有问题。
-
@MikeCAT 我正在使用代码块 IDE。有一个自动构建按钮。根据您的评论,我假设我必须制作一个 makefile 来指定应该如何进行编译?
-
@Vindictive 我猜你正在尝试编译单个文件,你应该创建一个“项目”来编译和链接多个文件。
-
你必须告诉你的IDE你的项目包含两个翻译单元。我不熟悉那个IDE,所以我不能告诉你怎么做;但看起来您只是想在 IDE 中构建两个独立的翻译单元,彼此独立,而您需要配置您的 IDE,以便它知道两个翻译单元是一个项目。
标签: c++