Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2019, 18:51   #1
Данил_2002
 
Регистрация: 03.04.2019
Сообщений: 4
По умолчанию проблема с h файлами

Изучаю C++, дошел до заголовочных файлов(.h) и тут возникла проблемка

ПРОЕКТ:

main.cpp:
Код:
#include <iostream>
#include "header.h"

using namespace std;

int main()
{
    int value = value_get(); // ОШИБКА undefined reference
    cout << value << endl;
    return 0;
}
file_1.cpp:

Код:
int value_get()
{
    return 10;
}
header.h:
Код:
#ifndef HEADER_H
#define HEADER_H

int value_get();

#endif // HEADER_H_INCLUDED
P.S Программирую в Codeblocks. Делал все как в примере, вроде как.

Подскажите в чем проблема, заранее спасибо!
Данил_2002 вне форума Ответить с цитированием
Старый 03.04.2019, 20:12   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Я в этом не силён, но ...
В main.cpp есть связка с header.h
Код:
...
#include "header.h"
...
В header.h есть ссылка на value_get:
Код:
...
int value_get();
...
Компилятору осталось догадаться, что определение для value_get()
спрятано в файле file_1.cpp.
Как ?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 04.04.2019, 09:55   #3
Данил_2002
 
Регистрация: 03.04.2019
Сообщений: 4
По умолчанию

Я это знаю, просто как сделать так, чтобы все работало?
Данил_2002 вне форума Ответить с цитированием
Старый 04.04.2019, 11:08   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

file_1.cpp в проекте и компилируется?
p51x вне форума Ответить с цитированием
Старый 04.04.2019, 22:34   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
file_1.cpp в проекте и компилируется?
очевидно жеж:
Цитата:
Сообщение от Данил_2002 Посмотреть сообщение
// ОШИБКА undefined reference
_Bers вне форума Ответить с цитированием
Старый 05.04.2019, 01:06   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну я как бы намекаю...
p51x вне форума Ответить с цитированием
Старый 05.04.2019, 10:56   #7
clever411
Новичок
Джуниор
 
Регистрация: 05.04.2019
Сообщений: 2
По умолчанию

Очевидно, проблема здесь в том, что компилятору при сборке не даётся определение функции value_get. В codeblocks, чтобы это испавить, насколько я помню (сам уже им не пользуюсь, но пользовался), надо добавить файл в проект: что-то вроде правого щелчка мыши по иконке проекта в дереве, там - add files to project (текст должен быть другой, но смысл такой); и вот получилось.
А вообще, советую осваивать makefile'ы, хотя бы просто освоить, не обязательно потом пользоваться. Их освоение даёт понимание, как работает компиляция, линковка, что такое библиотеки, иклуды, и т.д и т.п. Используя codeblocks и следуя рецептам, в этом не разберёшься, а значит при любой новой библиотеке, будут старые проблемы и поиск их решения на форумах.
Желаю удачи в изучении C++! (Примечание: если это код на C++, логичнее называть header'ы *.hpp, а не *.h - второй вариант для Си)
clever411 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с файлами MS Excel AdminStolbzy Microsoft Office Excel 8 12.01.2017 16:15
Проблема с файлами Sepherot Общие вопросы по Java, Java SE, Kotlin 3 21.04.2011 19:32
Проблема с файлами ini WinMen Общие вопросы Delphi 3 08.11.2010 10:43
проблема с файлами в Pascale velgelmina Помощь студентам 3 26.03.2010 23:14