c ++ Вызов функций через несколько файлов .cpp?

0

У меня 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.

Любое объяснение того, почему мой заголовочный файл/вызов не работает, очень ценится.

Теги:
call
function
header-files

2 ответа

1
Лучший ответ

Существует множество причин неопределенных эталонных ошибок. В вашем случае, из того, что вы описали, наиболее вероятно, что вы не скомпилировали other.cpp

Вам нужно добавить файл other.cpp в свою команду /makefile/command line.

Для более подробной помощи вам, вероятно, нужно объяснить, как вы строите свою программу. В коде нет ничего плохого, это то, как вы строите свою программу, и это проблема.

  • 0
    Спасибо. У меня был только g ++ main.cpp -Wall -o main
0

пытаться

gcc -Wall main.cpp other.cpp -o mymain

Ещё вопросы

Сообщество Overcoder
Наверх
Меню