0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 4

Ошибка "error unresolved external"

11.03.2019, 15:31. Показов 1949. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток от студента заочника)

Во время выполнения домашней работы по объектно-ориентированному программированию столкнулся с непонятной ошибкой "error unresolved external".

Дано: Язык Си, среда разработки Notepad++, тема "Наследование классов"

Имеется заведомо рабочая программа, которая была написана в аудитории, программа рабочая и запускается. Однако при любом редактировании *.cpp файла наследуемого класса, например параметра грузоподъемности, а именно замены строки "cargo=75+rand()%75;" на "cargo=75;" и последующей компиляции получаю список ошибок:

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'Tbike::Tbike()' referenced from C:\BORLAND\TEST_COPY\TCARGO_BIKE.OBJ
Error: Unresolved external 'Tbike::go(int)' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike:itstop(int)' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::getrun()' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::getfuelsize()' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::gettanksize()' referenced from C:\BORLAND\TEST_COPY\M.OBJ

Скриншот:



Что с эти делать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2019, 15:31
Ответы с готовыми решениями:

Ошибка: error LNK2019: unresolved external symbol
В общем делаю курсач, есть фунция ввода списка, но тут такая проблема: у меня не компилируется, то что я написал(точнее LINK не проходит) с...

Ошибка: error LNK2001: unresolved external symbol _WinMain@16
При определении макроса UNICODE error LNK2001: unresolved external symbol _WinMain@16

Ошибка [Linker Error] Unresolved external '_main' referenced
Ошибка в програме.... Unresolved external '_main' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\C0X32.OBJ Листинг:...

10
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
11.03.2019, 15:38
Цитата Сообщение от Taliorn Посмотреть сообщение
например параметра грузоподъемности
параметра в определении метода? если да то в объявлении тоже нужно поменять

Добавлено через 50 секунд
лучше код покажи, а вообще удали все лишнее но что бы ошибка осталась, тогда возможно сам поймешь или сюда кидай
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 4
11.03.2019, 15:48  [ТС]
Проблема в том, что данная ошибка возникает даже тогда, когда я просто вновь запускаю компиляцию рабочей программы без изменений в коде. =/

Но хорошо, вот код:
Файл *.h базового класса:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Tbike
{
public:
        
    Tbike();// Конструктор
    bool go(int km);
    bool pitstop(int fuel);
    float gettanksize();
    float getfuelsize();
    float getrun();
protected:
    float tanksize;
    float run;
    float fuelsize;
};
*.cpp файл:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "Tbike.h"
#include <string.h>
#include <time.h>
#include <stdlib.h>
 
Tbike::Tbike()
{
    tanksize=30.0+rand()%20;
    fuelsize=tanksize-rand()%10;
    run=2.0;
 
}
 
bool Tbike::go(int km)
{
    float distance = fuelsize/run;
    
    if (distance>km)
    {   
        fuelsize=fuelsize-km*run;
        return true;
    }
    else
    return false;
}
 
bool Tbike::pitstop(int fuel)
{
    if ((fuelsize+fuel)<=tanksize)
    {   
        fuelsize=fuelsize+fuel;
        return true;
    }
    else
    return false;
}
 
float Tbike::gettanksize()
{
return tanksize;
}
 
float Tbike::getfuelsize()
{
return fuelsize;
}
float Tbike::getrun()
{
return run;
}
Хэдэр наследуемого класса:

C++
1
2
3
4
5
6
7
8
9
10
11
#include "Tbike.h"
 
class TCargo_bike:public Tbike
{
private:
    int cargo;
public:
    TCargo_bike();
    bool go_cargo(int km, int kg);
    int getcargo();
};
И срр файл:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "TCargo_bike.h"
#include <string.h>
#include <time.h>
#include <stdlib.h>
 
TCargo_bike::TCargo_bike():Tbike()
{
    cargo=75+rand()%75;
}
 
bool TCargo_bike::go_cargo(int km, int kg)
{
    if (kg<=cargo)
    {
    bool rez;
    run++;
    rez= go(km);
    run--;
    return rez;
    }
    else
    return false;
}
 
int TCargo_bike::getcargo()
{
    return cargo;
}
НУ и main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include "TCargo_bike.h"
#include <time.h>
#include <stdlib.h>
#include <string.h>
 
void main ()
{
    srand(time(0));
    
    TCargo_bike bike;
    int dist;
    int litrs;
    int kg;
    printf("Tanksize = %f\nfuelsize = %f\nrun/km = %f\n", bike.gettanksize(), bike.getfuelsize(), bike.getrun());
    printf("\nHow long distance?\n");
    scanf("%d", &dist);
    
    
    if (bike.go(dist))
        {
        printf("\nLet's go!\n");
        }
    else
        {
        printf("\nCan't go!\n");
        }
        
    printf("Tanksize = %f\nfuelsize = %f\nrun/km = %f\nCargo = %d\n", bike.gettanksize(), bike.getfuelsize(), bike.getrun(), bike.getcargo());  
 
    printf("\nHow many litrs?\n");
    scanf("%d", &litrs);
    
    if (bike.pitstop(litrs))
    printf("\nOk! You have %f litrs\n", bike.getfuelsize());
    else
    printf("Can't zapravit' malyi bak!");
    
    printf("\nHow many kg?\n");
    scanf("%d", &kg);
    
    if (bike.go_cargo(dist, kg))
        printf("\nGo)\n");
    else
        printf("\nCan't go\n");
    
    printf("Tanksize = %f\nfuelsize = %f\nrun/km = %f\n", bike.gettanksize(), bike.getfuelsize(), bike.getrun());
}
Собственно это все было написано на другом компьютере в универе и оно работает. Но если я запущу компиляцию из командной строки командой bcc32 m.cpp TCargo_bike.cpp - то получаю вышеуказанную ошибку.
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
11.03.2019, 15:56
Цитата Сообщение от Taliorn Посмотреть сообщение
Но хорошо, вот код
Не надо так код показывать. Его никто читать не будет в таком виде.

Добавлено через 16 секунд
Цитата Сообщение от Taliorn Посмотреть сообщение
Но хорошо, вот код
Не надо так код показывать. Его никто читать не будет в таком виде.
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
11.03.2019, 16:00
Лучший ответ Сообщение было отмечено Taliorn как решение

Решение

Цитата Сообщение от Taliorn Посмотреть сообщение
И срр файл:
Когда речь идет об ошибках линковки:
Цитата Сообщение от Taliorn Посмотреть сообщение
Error: Unresolved external 'Tbike::Tbike()' referenced from C:\BORLAND\TEST_COPY\TCARGO_BIKE.OBJ
Error: Unresolved external 'Tbike::go(int)' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike:itstop(int)' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::getrun()' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::getfuelsize()' referenced from C:\BORLAND\TEST_COPY\M.OBJ
Error: Unresolved external 'Tbike::gettanksize()' referenced from C:\BORLAND\TEST_COPY\M.OBJ
То файлов "и cpp" не существует.

Цитата Сообщение от Taliorn Посмотреть сообщение
*.cpp файл:
Таких файлов так же не существует.


Существуют конкретные файлы.
Согласно вашему скриншоту: m.cpp и TCargo_bike.cpp

Телепатия подсказывает: не хватает Tbike.cpp

Но поскольку балбес поленился по нормальному указать названия файлов и их содержимое,
то остаётся только гадать.
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.03.2019, 16:01
Цитата Сообщение от Taliorn Посмотреть сообщение
Дано: Язык Си
Раздел С: https://www.cyberforum.ru/c-beginners/
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
11.03.2019, 16:07
Придави папку с исходниками в архив и выложи. Так будет проще увидеть, чего не хватает.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.03.2019, 16:15
Цитата Сообщение от Taliorn Посмотреть сообщение
BORLAND
https://www.cyberforum.ru/cpp-builder/
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 4
11.03.2019, 16:20  [ТС]
Код в архиве.

Tbike.h
Tbike.cpp
main.cpp

TCargo_bike.h
TCargo_bike.cpp
m.cpp
Вложения
Тип файла: rar cargo_bike.rar (129.1 Кб, 4 просмотров)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.03.2019, 16:25
Цитата Сообщение от Taliorn Посмотреть сообщение
bcc32 m.cpp TCargo_bike.cpp
А третий и четвёртый .cpp почему не пишешь?
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 4
11.03.2019, 16:28  [ТС]
Ох тыж, я действительно балбес, который не смог правильно запустить компиляцию. Я набирал bcc32 m.cpp TCargo_bike.cpp, полагая что раз в файле TCargo_bike.h есть строка #include "Tbike.h" , то при запуске компиляции не надо дописывать файл tbike.cpp

При наборе bcc32 m.cpp TCargo_bike.cpp Tbike.cpp все компилируется правильно. Всем спасибо за участие! =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2019, 16:28
Помогаю со студенческими работами здесь

Ошибка error LNK2019: unresolved external symbol char *
Добрый день! Помогите разобраться с ошибкой, не пойму что именно она значит. Заранее спасибо error LNK2019: unresolved external...

ошибка [Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ
При компиляции программы борланд выдает ошибку Unresolved external '_main' referenced from C:\PROGRAM...

[ilink32 Error] Error: Unresolved external 'zamena (int * *) ' referenced
Вот это программа не работает : вот ошибка которую выдает компилятор: Error: Unresolved external 'zamena(int * *)' referenced from...

Виртуальные классы и ошибка "Error LNK2001: unresolved external symbol"
Решил перелезть с C# на C++. Ну или по крайней мере немного его подучить для самообразования. В C# есть такая замечательная вещь как...

Ошибка при сборке проекта: "error LNK2019: unresolved external symbol"
Все части проекта успешно компилируются , но при сборке появляются ошибки: 1&gt;prakt2.obj : error LNK2019: unresolved external...


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

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

Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru