Indeed this question is asked and answered many times, but i could not make it correctly to call a function from the main program. I have three separate files as shown below.
//max.h
int max(int num1, int num2);
//maxmain.cpp
#include <iostream>
#include "max.h"
using namespace std;
// function declaration
int max(int num1, int num2);
int main ()
{
// local variable declaration:
int a = 100;
int b = 200;
int ret;
// calling a function to get max value.
ret = max(a, b);
cout << "Max value is : " << ret << endl;
return 0;
}
//max.cpp
#include "max.h"
// function returning the max between two numbers
int max(int num1, int num2)
{
// local variable declaration
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
When i compile maxmain.cpp
, i get the error: maxmain.cpp:(.text+0x21): undefined reference to max(int, int) collect2: error: ld returned 1 exit status
Your code is fine as written. The issue is how you are compiling. You should list all of the cpp files in this case
g++ maxmain.cpp max.cpp -o maxmain
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.