2013-10-11 3 views
0

У меня есть 3 файла: - main.cpp - other.cpp - other.hC++ Вызывающие функции в нескольких файлах .cpp?

Я пытаюсь вызвать функцию, которая была объявлена ​​в other.h, от 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.

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

+0

Показать свою команду компиляции. Если использовать GCC (например, 'g ++'), обратите внимание, что порядок аргументов программы компилятору имеет большое значение. –

+0

включают iostream – Jost

ответ

1

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

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

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

+0

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

0

попробовать

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

Смежные вопросы