Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
1

Ошибка "undefined reference to"

23.02.2018, 14:06. Показов 2639. Ответов 18
Метки нет (Все метки)

Не удается скомпилировать
battery.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef BATTERY_H_INCLUDED
#define BATTERY_H_INCLUDED
 
class Battery{
public:
    Battery (int n, double e, double r);
    void show() const;
    double amperage (double I) const;
    double resistance (double R) const;
private:
    int n;
    double r, e;
};
 
#endif // BATTERY_H_INCLUDED
battery.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include "battery.h"
#include <cmath>
Battery::Battery(int n, double e,double r ):
    n(n), e(e), r(r) {}
void Battery::show() const {
std::cout<<n<<" "<<"/n"<<e<<"/n"<<r<<"/n";
}
double Battery::amperage(double I) const {
double R;
std::cout<<"enter R"<<"/n";
std::cin>>R;
I = e*n/(R + r*n);
return I;
}
double Battery::resistance(double R) const {
double I;
std::cout<<"enter I"<<"/n";
std::cin>>I;
R =e*n/I - r*n;
return R;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "battery.h"
 
int main()
{
    Battery b(3, 5, 0.5);
    b.show();
    b.amperage(3);
    b.resistance(2);
}
Ошибка
undefined reference to 'Battery::Battery (int, bouble, double)'
undefined reference to 'Battery::show() const'
undefined reference to 'Battery::amperage(double) const'
undefined reference to 'Battery::resistance(double) const'
Подскажите, пожалуйста, в чем дело и как исправить
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2018, 14:06
Ответы с готовыми решениями:

У меня ошибка - "undefined reference to `WinMain@16'"
#include &lt;cstring&gt; #include &lt;fstream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using namespace...

Работа с шаблонами и ошибка "Undefined reference"
только приступил к изучению шаблонов и сразу куча вопросов и проблем прошу объяснить мне на...

Ошибка: undefined reference to "omp_set_nested"
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;omp.h&quot; int main() { int n = 0;...

ошибка "undefined reference"
Изучаю С++ по книге Дейтелов. Работаю в Code Blocks Вот запнулся. Изучаю рекурсию на примере числа...

18
6988 / 6027 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
23.02.2018, 14:10 2
Файлы подключены к проекту?
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 14:19  [ТС] 3
Все файлы находятся в одном проекте. Заголовочный файл подключен к файлу с реализацией и к файлу с использованием.
0
460 / 703 / 129
Регистрация: 10.08.2015
Сообщений: 3,230
23.02.2018, 14:47 4
Какой компилятор? gcc в c::b собрал все без вопросов
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 15:05 5
Цитата Сообщение от pn_2336 Посмотреть сообщение
Все файлы находятся в одном проекте.
battery.cpp явно не находится.
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 15:15  [ТС] 6
Также использую gcc в code::blocks
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 15:24 7
Цитата Сообщение от pn_2336 Посмотреть сообщение
Также использую gcc в code::blocks
В обозревателе решений battery.cpp присутствует?
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 15:29  [ТС] 8
Если я не ошибаюсь, battery.cpp все же находится в одном проекте с остальными файлами.
0
Миниатюры
Ошибка "undefined reference to"  
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 15:36 9
Среду перезапусти.
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 16:07  [ТС] 10
После перезапуска ничего не изменилось.
Возможно, проблема в заголовочном файле? Достаточно создать его и подключить или необходимы дополнительные действия?
0
460 / 703 / 129
Регистрация: 10.08.2015
Сообщений: 3,230
23.02.2018, 16:34 11
Лучший ответ Сообщение было отмечено pn_2336 как решение

Решение

попробуй этот проект
1
Вложения
Тип файла: zip battery.zip (414.7 Кб, 15 просмотров)
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 17:04 12
Цитата Сообщение от pn_2336 Посмотреть сообщение
Возможно, проблема в заголовочном файле?
С заголовочным всё в порядке (иначе ошибки компилятор выдавал бы, а не компоновщик). Ошибки уже компоновщик выдаёт, не находит этих реализаций.

Добавлено через 8 минут
Весь Build log покажи (не messages).
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 17:20  [ТС] 13
Работает Спасибо!

Добавлено через 12 минут
Build log
-------------- Build: Release in battery (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -o bin\Release\battery.exe obj\Release\main.o -s
obj\Release\main.o:main.cpp.text.startup+0x35): undefined reference to `Battery::Battery(int, double, double)'
obj\Release\main.o:main.cpp.text.startup+0x40): undefined reference to `Battery::show() const'
obj\Release\main.o:main.cpp.text.startup+0x41): undefined reference to `Battery::amperage(double) const'
obj\Release\main.o:main.cpp.text.startup+0x57): undefined reference to `Battery::resistance(double) const'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: obj\Release\main.o: bad reloc address 0x0 in section `.ctors'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
5 error(s), 0 warning(s) (0 minute(s), 0 second(s))
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 17:24 14
Цитата Сообщение от pn_2336 Посмотреть сообщение
Build log
Работа компилятора где? Тут только компоновщик.
0
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 17:38  [ТС] 15
Это все, что есть в Build log
0
Миниатюры
Ошибка "undefined reference to"  
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 17:43 16
Лучший ответ Сообщение было отмечено pn_2336 как решение

Решение

Если очистить проект, и пересобрать?
1
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 16
23.02.2018, 18:14  [ТС] 17
Теперь компилируется и работает Спасибо!
А в чем же была ошибка?
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
23.02.2018, 18:39 18
Цитата Сообщение от pn_2336 Посмотреть сообщение
А в чем же была ошибка?
Трудно сказать. Или глюк среды, или ты что-то, в процессе работы с проектом, не так сделал.
0
460 / 703 / 129
Регистрация: 10.08.2015
Сообщений: 3,230
23.02.2018, 21:08 19
попробуй переустановить кодблокс или удалить и поставить 17ю версию.
как вариант проверить права на чтение/запись папки
зы я скачал кодлокс с сФ без компилятора и проект отсюда, распаковал и все скомпилировалось без проблем
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2018, 21:08

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибка "undefined reference to"
Здравствуйте. Пишу набор функций, состоящих из двух файлов: fileio.h и fileio.cpp Попытался...

"undefined reference" в строках GLUT при установке OpenGL
После получения минимальных навыков создания консольных приложений на плюсах, решил перейти к...

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

Не собирается проект с шаблонным классом: "undefined reference"
Подскажите пожалуйста, не собирается проект. Пишет &quot;undefined reference to Unit::Set()&quot; и такое же...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

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