编译cpp代码时出错:collect2:错误:ld返回1退出状态



我目前正在学习C++,在学习如何处理多个文件时遇到了以下编译器错误:"在函数main': bravo.cpp:(.text+0x71): undefined reference tosum(int,int('中collect2:错误:ld返回1退出状态">

我构建的代码是:主要功能

#include<iostream>
#include "add.h"
int main(){
int a,b;
std::cout<<"Give me two numbers to add: n";
//std::cin>>a>>b;
std::cout<<"The sum of two numbers is "<< sum(10,5)<< std::endl; 
}

头文件

#pragma once
int sum(int a, int b);

求和函数

#include<iostream>
#include "add.h"
int sum(int a, int b){
return a+b;
}

那我哪里错了?我尝试检查堆栈溢出的错误,但我无法实现问题的解决方案?有什么想法吗?谢谢

您收到一个链接器错误,因为您可能只是试图编译main.cpp函数。然后链接器找不到sum(int,int(,因为您没有编译add.cpp函数。

假设你使用的是g++,你可以像这样编译这两个文件:

g++ main.cpp add.cpp

它会起作用的。

最新更新