Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 243, средняя оценка - 4.84
Lowbacki
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 27
#1

Code::Blocks. "undefined reference to" - C++

12.10.2009, 12:23. Просмотров 31878. Ответов 8
Метки нет (Все метки)

Доброго времени суток! Это опять я

Столкнулся со следующей проблемой. Есть 5 файлов:
main.cpp --- здесь функция int main(), т.е. делаю build and run

class1.h --- заголовочный файл для class CClass1{...};
class1.cpp --- соответствующий файл .cpp

class2.h --- заголовочный файл для class CClass2{...};
class2.cpp --- соответствующий файл .cpp

После build and run выдаются ошибки такого плана:

\main.o||In function `main':|
\main.cpp|16|undefined reference to `CClass1::CClass1(int)'|
\main.cpp|17|undefined reference to `CClass2::CClass2()'|
\main.cpp|29|undefined reference to `CClass2::Func1(CClass1l&, char*, int)'|
...
Всё в том же духе. насколько я понял при компиляции компилятор не использует файлы class1.h class1.cpp class2.h class2.cpp. Подскажите пожалуйста что нужно сделать, чтобы эти ошибки исчезли?

P.S.: Извиняюсь если повтор, я поискал, но не нашел ничего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2009, 12:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Code::Blocks. "undefined reference to" (C++):

Code Blocks. Ошибка при компиляции "неправильный компилятор" - C++
Помогите разобраться. Качал пару версий code block - создаю новый проект, выбираю консоль, с++, пишу код (hello world:)), run and build -...

Ошибка в Code::Blocks "Process terminated with status 0" - C++
Здравствуйте) Пытаюсь откомпилировать этот код в Code::Blocks 13.12 (сам код из книги по OpenGL) . Среда настроена, как сказано...

Избавиться от "Нажмите любую клавишу..." в конце программы, code::blocks - C++
Собственно, сабж. Как это сделать?

"undefined reference" при инклюде внешних классов/библиотек - C++
Используется: Eclipse CDT, MinGW Немного сырцов: #ifndef STACK_H_ #define STACK_H_ template<class T> class...

Не собирается проект с шаблонным классом: "undefined reference" - C++
Подскажите пожалуйста, не собирается проект. Пишет "undefined reference to Unit::Set()" и такое же про Unit::Get(); Unit.h #ifndef...

Code::Blocks ошибка компиляции "fatal error iostream no such file or directory" - C++
Всем привет ! Я очень давно хотел научиться программировать и вот решил начать . Сначала посоветовали программу Dev C++ , но потом я...

8
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
12.10.2009, 12:38 #2
В проект эти файлы включены?
0
Lowbacki
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 27
12.10.2009, 12:49  [ТС] #3
я без проекта делаю, просто засунул их в просмотрщик Code::Blocks и жму F9 на файле main.cpp
0
Rumus
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 91
12.10.2009, 12:51 #4
Цитата Сообщение от Lowbacki Посмотреть сообщение
я без проекта делаю, просто засунул их в просмотрщик Code::Blocks и жму F9 на файле main.cpp
Попробуй в проект засунуть?
1
Lowbacki
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 27
12.10.2009, 13:06  [ТС] #5
Хороший вариант! Как я об этом могу забыть!?...

Ну а вообще, предположим пишу я без проекта, где там в опциях надо чего поменять, чтобы заработало?
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
12.10.2009, 13:22 #6
Ничего. Проект в терминологии C(++) как раз и предназначен для того, чтобы линкер "знал", какие исходные файлы в него входят, и, следовательно, в каких именно объектных файлах искать нужный код. Иначе, откуда он это "узнает" ?
1
Lowbacki
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 27
12.10.2009, 20:21  [ТС] #7
Понятно.
Просто я думал может можно где-то в опциях поставить ему параметры как это делается при компиляции из командной строки(точно не помню, но что-то вроде этого):
gcc main.cpp class1.cpp class2.cpp
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
12.10.2009, 21:36 #8
Как вариант - Makefile
0
ioann1
0 / 0 / 0
Регистрация: 31.08.2011
Сообщений: 3
31.08.2011, 23:14 #9
Приветствую!

Я столкнулся с такой же проблемой, с той лишь разницей, что использую статические библиотеки для Class1 и Class2. Заранее скомпилированные библиотеки я подключил к проекту. В заголовке пробного приложения (консольное, простое) дописал #Include class1. Но результат далек от ожидаемого мною, близок к теме топика.
Классы связанны между собой:
Class1 использует функции Class2. при этом Class1 использует библиотеку SQLite3.

Очень нужна Ваша помощь, господа.

Добавлено через 52 минуты
Вопрос снимается. Решение найдено в дополнительной опции:
Linker Settings -> Other linker options :
`wx-config --libs`
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 23:14
Привет! Вот еще темы с ответами:

Интерпретация астериска ("звёздочки") в Code::Blocks - C++
Здравствуйте, форумчане! Имеется незамысловатая программа: #include <iostream> int main(int argc, char *argv) { for (int...

Работа с загаловочными файлами ("Undefined reference to") - C++
Доброго времени суток. Не пойму почему компилятор Code Blocks выдаёт мне следующий ERROR: Undefined reference to 'summa(int, int) ...

Работа с шаблонами и ошибка "Undefined reference" - C++
только приступил к изучению шаблонов и сразу куча вопросов и проблем прошу объяснить мне на пальцах почему не работает matrix.h ...

Ошибка "first defined here" Code::Blocks - C++
Помогите решить ошибки при компиляции Код: main.cpp #include <iostream> #include <string> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
31.08.2011, 23:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru