Действительно, этот вопрос задают и отвечают много раз, но я не мог правильно настроить функцию из основной программы. У меня есть три отдельных файла, как показано ниже.Вызов функции из основной функции в cpp
//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;
}
Когда я скомпилировать maxmain.cpp
, я получаю ошибку: maxmain.cpp:(.text+0x21): undefined reference to max(int, int) collect2: error: ld returned 1 exit status
Ваш код в порядке, это должна быть проблема с тем, как вы компилируете. Что вы используете для компиляции (visual studio, gcc и т. Д.)? – CoryKramer
@CoryKramer Я на Linux. 'g ++ maxmain.cpp -o maxmain' –
вам нужно указать имена всех .cpp-файлов при компиляции или связывать объекты после компиляции отдельно. –