Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/84: Рейтинг темы: голосов - 84, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 04.12.2007
Сообщений: 3

Unresolved external '...' referenced from ...*.OBJ

05.05.2009, 18:01. Показов 16955. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу лабу по работе с классами, должен быть класс-родитель, содержащий прямоугольник, и класс-потомок, содержащий автомобиль. При запуске выдаёт: "[Linker Error] Unresolved external 'TRectg :: TRectg(int X01,int Y01,int X02,int Y02,Graphics::TColor Color0,Graphics::TCanvas* Canvas0)' referenced from D:\! STUDY\C\!2\LABOOP.OBJ" и ещё четыре аналогичных ошибки. Что я неправильно делаю?

Unit1.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef Unit1H
#define Unit1H
#include <graphics.hpp>
class TRectg
   {
   public:
   TRectg(int,int,int,int,TColor,TCanvas*);
   void Move(int,int);
   virtual void Show(TColor,TColor);
   protected:
   int X1,Y1,X2,Y2;
   TColor Color;
   TCanvas* Canvas;
   };
#endif
Unit1.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
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
 
//Конструктор
TRectg :: TRectg(int X01,int Y01,int X02,int Y02,
                 TColor Color0,TCanvas* Canvas0)
   {
   X1=X01;
   Y1=Y01;
   X2=X02;
   Y2=Y02;
   Color=Color0;
   Canvas=Canvas0;
   }
 
//Перемещение на заданное расстояние
void TRectg::Move(int dX,int dY)
   {
   Show(clBtnFace,clBtnFace)         //Удаление старого изображения
   X1+=dX;                           //Расчёт новых координат
   Y1+=dY;
   X2+=dX;
   Y2+=dY;
   Show(clBlack,Color)               //Рисование изображения на новом месте
 
//Отображение прямоугольника
void TRectg::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   Canvas->Rectangle(X1,Y1,X2,Y2);
   }
Unit2.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef Unit2H
#define Unit2H
#endif
#include "Unit1.h"
 
class TMashin : public TRectg
   {
   protected:
   TColor ColorD;
   public:
   TMashin(int X01,int Y01,int X02,int Y02,TColor Color0,TCanvas* Canvas0):
   TRectg(X01,Y01,X02,Y02,Color0,Canvas0){};
   void SetD(TColor);
   void Show(TColor,TColor);
   };
Unit2.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
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)
 
//Отображение машины
void TMashin::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   int hx=(X2-X1)/10;
   int hy=(Y2-Y1)/10;
   TPoint pnt[7];
   pnt[0]=Point(X1,Y1+4*hy);
   pnt[1]=Point(X1,Y1+8*hy);
   pnt[2]=Point(X2-2*hx,Y1+8*hy);
   pnt[3]=Point(X2-2*hx,Y1+4*hy);
   pnt[4]=Point(X1+6*hx,Y1+4*hy);
   pnt[5]=Point(X1+4*hx,Y1);
   pnt[6]=Point(X1+2*hx,Y1);
   Canvas->Polygon(pnt,6);
   Canvas->Ellipse(X1+hx,Y1+6*hy,X1+3*hx,Y2);
   Canvas->Ellipse(X1+5*hx,Y1+6*hy,X1+7*hx,Y2);
   TPoint pnd[4];
   Canvas->Pen->Color=clBtnFace;
   if (CB!=clBtnFace)
      Canvas->Brush->Color=ColorD;
   pnd[0]=Point(X2-2*hx+1,Y1+5*hy);
   pnd[1]=Point(X2-2*hx+1,Y1+7*hy);
   pnd[2]=Point(X2,Y1+8*hy);
   pnd[3]=Point(X2,Y1+4*hy);
   Canvas->Polygon(pnd,3);
   }
 
void TMashin::SetD(TColor clr)
   {
   ColorD=clr;
   };
Добавлено через 48 секунд
labOOP.h:
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
#ifndef labOOPH
#define labOOPH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TSpeedButton *SpeedButton1;
        TSpeedButton *SpeedButton2;
        TSpeedButton *SpeedButton3;
        TSpeedButton *SpeedButton4;
        TEdit *Edit1;
        TCheckBox *CheckBox1;
        TRadioGroup *RadioGroup1;
        TEdit *Edit2;
        void __fastcall CheckBox1Click(TObject *Sender);
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall SpeedButton2Click(TObject *Sender);
        void __fastcall SpeedButton3Click(TObject *Sender);
        void __fastcall SpeedButton4Click(TObject *Sender);
        void __fastcall FormResize(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
labOOP.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <vcl.h>
#pragma hdrstop
#include "labOOP.h"
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TRectg *Obj1;
TMashin *Obj2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
   {
   //Создание динамических объектов классов
   Obj1=new TRectg(10,10,60,70,clYellow,Form1->Canvas);
   Obj2=new TMashin(100,10,240,70,clRed,Form1->Canvas);
   }
//---------------------------------------------------------------------------
 
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
   {
   //Включение фар
   if (CheckBox1->Checked)
      Obj2->SetD(clWhite);
   else
      Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }
 
void __fastcall TForm1::FormResize(TObject *Sender)
   {
   //Отображение объектов (прямоугольника и машины)
   Obj1->Move(0,0);
   Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }
 
void Dvigen (int hx,int hy) //Движение выбранного объекта
   {
   switch(Form1->RadioGroup1->ItemIndex)
      {
      case 0:
         Obj1->Move(hx,hy);
         break;
      case 1:
         Obj2->Move(hx,hy);
         break;
      }
   }
 
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
   {
   Dvigen(0,-StrToInt(Edit2->Text));
   }
 
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
   {
   Dvigen(-StrToInt(Edit1->Text),0);
   }
 
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
   {
   Dvigen(StrToInt(Edit1->Text),0);
   }
 
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
   {
   Dvigen(0, StrToInt(Edit2->Text));
   }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2009, 18:01
Ответы с готовыми решениями:

Ошибка [Linker Error] Unresolved external '_Form1' referenced from G\.obj
Как устранить ошибку? файл .cpp //--------------------------------------------------------------------------- #include...

[Linker Error] Unresolved external 'f2(double)' referenced from D:\C++\4\UNIT1.OBJ-C++ Builder
что может означать эта ошибка: Unresolved external 'f2(double)' referenced from D:\C++\4\UNIT1.OBJ ...

[Linker Error] Unresolved external 'Sum(float)' referenced from D:\УЧЕБА\UNIT1.OBJ
что может означать эта ошибка Unresolved external 'Sum(float)' referenced from D:\УЧЕБА\UNIT1.OBJ ...

3
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
06.05.2009, 06:33
Попробуй Project -> Add to Project и выбери Unit1.cpp, затем повтори для Unit2.cpp.
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.05.2009, 06:57
у тебя 3 ошибки в листинге Unit1:
C++
1
2
3
4
5
6
7
8
9
void TRectg::Move(int dX,int dY)
   {
   Show(clBtnFace,clBtnFace)  //нет точки запятой
   X1+=dX;                           //Расчёт новых координат
   Y1+=dY;
   X2+=dX;
   Y2+=dY;
   Show(clBlack,Color)               //нет точки запятой
// нет закрывающей фигурной скобки
хотя тогда не понятно, как дошло дело до линкования, можешь полностью выложить
1
0 / 0 / 0
Регистрация: 04.12.2007
Сообщений: 3
06.05.2009, 09:27  [ТС]
извиняюсь, сильно ступил. действительно, дело было в shift+F11
WooDooMan, до линкования потому и дошло, что юнит1 и подключен-то не был.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2009, 09:27
Помогаю со студенческими работами здесь

Ошибка [Linker Error] Unresolved external 'TForm1::' referenced from C:\USERS\DESKTOP\PROJECT2.OBJ
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Подскажите что мне делать с ошибкой [Linker Error] Unresolved external 'Btsdk_Init()' referenced from UNIT1.OBJ
Здравствуйте, помогите пожалуйста. Скачал с сайта http://www.bluesoleil.com/ библиотеку для работы с блютуз. В нее входит 4-е h...

что за ошибка?[Linker Error] Unresolved external '_PortOut' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
Unresolved external '_PortOut' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ Я скачал библиотеку для работы с...

[ILINK32 Error] Error: Unresolved external '__fastcall TMainForm::MaskEdit1Change(System::TObject *)' referenced from C:\LCARD\MAIN.OBJ
одна ошибка просто достала, наверняка где то уже была тема про эту ошибку, но не могу найти вообщем добавляю на поле какую нибудь...

[Linker Error] Unresolved external '__fastcall TForm3::FormCreate(System::TObject *)' referenced from D:\Sasha\Navchannya\OPI\KPIZ\KPIZ\UNIT3.OBJ
Здравствуйте, уважаемые форумчане! У меня возникла проблема с компиляцией проекта. Дело в том, что при компиляции Билдер выдает мне...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru