У меня 3 файла: - main.cpp - other.cpp - other.h
Я пытаюсь вызвать функцию, которая была объявлена в other.h, from main.cpp, причем код написан в файле other.cpp
Мой код:
main.cpp:
//#Allmyincludes
#include "other.h"
int main(int argc, const char *argv[])
{
const char *file = argv[1];
read(file);
return 0;
}
other.cpp:
//#Allmyincludes
#include "other.h"
void read(const char *file)
{
//code
}
other.h:
void read(const char *file);
Ошибка, которую я получаю:
main.cpp:(.text+0x44): undefined reference to 'read(char const*)'
В read()
я использую main::variableName
для доступа к переменным из основного (без ошибок), однако я просто не могу заставить вызов функции работать. Если я попытаюсь сделать other::read(file);
это также не работает, потому что ::
для функций, а не файлов. Это дает мне ошибку: 'other' has not been declared.
Любое объяснение того, почему мой заголовочный файл/вызов не работает, очень ценится.
Существует множество причин неопределенных эталонных ошибок. В вашем случае, из того, что вы описали, наиболее вероятно, что вы не скомпилировали other.cpp
Вам нужно добавить файл other.cpp в свою команду /makefile/command line.
Для более подробной помощи вам, вероятно, нужно объяснить, как вы строите свою программу. В коде нет ничего плохого, это то, как вы строите свою программу, и это проблема.
пытаться
gcc -Wall main.cpp other.cpp -o mymain