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

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

Войти
Регистрация
Восстановить пароль
 
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
#1

Ошибка при компиляции Unresolved external - C++

02.06.2014, 01:49. Просмотров 210. Ответов 8
Метки нет (Все метки)

Доброго времени суток. У меня в программе есть клас Masiv, объявленный с идентификатором extern. Далее я в одной из функцый его иницыализирую и исползую, а потом в и других функцыях исползую. Сам клас описан в другом файле и подинкуденый к в той, где я его исползую. При компиляции выдает ошибку Error: Unresolved external '_Masiv'. Не понимаю где ошибка, файл где описан класс подключен, нет никаких неизвесных переменных. Подскажите пожалуйста, что я не так сделал?
Буду очень благодарен.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 01:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при компиляции Unresolved external (C++):

Ошибка при линковании - unresolved external symbol - C++
Вроде после успешной версии ничего криминального не делал!!!Но получил ошибку error LNK2001: unresolved external symbol 'public: virtual...

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

Ошибка при подключении заголовочного файла: "error LNK2019: unresolved external symbol" - C++
Добрый день. Я что то не могу разобраться как работают эти заголовки на с++(вижуал студия). Создал Test.h В нём написал ...

Ошибка Unresolved external - C++
Доброго времени суток! Начал изучать С++. Пример прямо из учебника. Ошибка известная. Но решения найти не могу. Все рекомендуют...

Ошибка: unresolved external symbol - C++
пишу на Visual C++ (сюда обратился так как знающего люду больше) выдает ошибку - помогите кто чем может ошибка такая: unresolved...

Ошибка Unresolved external symbol - C++
Такой вопрос: есть некий класс с перегрузкой "<<" и конструктором. ... class OOP { public: friend ostream & operator <<(ostream...

8
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
02.06.2014, 01:54 #2
Цитата Сообщение от Riddleman Посмотреть сообщение
Подскажите пожалуйста, что я не так сделал?
показывайте, что Вы там сделали(желательно минимизировать, но без потери ошибки)
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
02.06.2014, 02:22  [ТС] #3
Укоротил как мог. Файл в котором лежит этот код называется File_for_Form_MainWindow.cpp
Собственно полный код ошибки:
[ILINK32 Error] Error: Unresolved external '_Masiv' referenced from D:\ЯПОНСЬКІ ГОЛОВОЛОМКИ 2\DEBUG\FILE_FOR_FORM_MAINWINDOW.OBJ

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
#include "PuzzleGrid.h"
 
TForm_MainWindow *Form_MainWindow;
extern PuzzleGrid Masiv;//!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
__fastcall TForm_MainWindow::TForm_MainWindow(TComponent* Owner)
    : TForm(Owner)
{
}
 
void __fastcall TForm_MainWindow::Button_OpenClick(TObject *Sender)
{
    char *shlax=new char[Form_open_golovolomka->Edit_open_path->Text.Length()+ 1];
    strcpy(shlax,Form_open_golovolomka->Edit_open_path->Text.t_str());
    StringGrid_MainGrid->Visible = false;
    PuzzleGrid Masiv(shlax);//!!!!!!!!!!!!!!!!!!!!!!!
}
 
void __fastcall TForm_MainWindow::Button_RozraxynokClick(TObject *Sender)
{
 
        Masiv.Analis();
        //Setka.RozrahunokGolovolomku();
 
        StringGrid_VM->Visible = false;
        StringGrid_HM->Visible = false;
        StringGrid_VM->ColCount= Masiv.VmasColSize(); //Setka.VColCount();
        StringGrid_HM->RowCount= Masiv.GmasRowSize(); //Setka.HRowCount();
 
        for(int ARow=0;ARow<Masiv.RowSize() /*Setka.RowCount()*/;ARow++)
            for(int ACol=0;ACol<Masiv.VmasColSize() /*Setka.VColCount()*/;ACol++)
                 StringGrid_VM->Cells[ACol][ARow] = Masiv.VmasCellValue(ARow,ACol); //Setka.VerticalMatrix[ARow][ACol];
 
 
        for(int ARow=0;ARow<Masiv.GmasRowSize() /*Setka.HRowCount()*/;ARow++)
            for(int ACol=0;ACol<Masiv.ColSize() /*Setka.ColCount()*/;ACol++)
                StringGrid_HM->Cells[ACol][ARow] =Masiv.GmasRowSize() /*Setka.HorizontalMatrix[ARow][ACol]*/;
        StringGrid_VM->Visible = true;
        StringGrid_HM->Visible = true;
}
0
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
02.06.2014, 02:45 #4
C++
1
PuzzleGrid Masiv(shlax);//!!!!!!!!!!!!!!!!!!!!!!!
это локальная переменная.

Где-то в cpp:
C++
1
PuzzleGrid Masiv;
1
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
02.06.2014, 14:32  [ТС] #5
Что то я не догнал
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2014, 15:07 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Riddleman Посмотреть сообщение
Файл в котором лежит этот код называется File_for_Form_MainWindow.cpp
В нём сделайте:
C++
1
PuzzleGrid Masiv;
Если эта переменная ещё где-нибудь нужна, то в .h файле сделайте:
C++
1
extern PuzzleGrid Masiv;
и подключайте этот .h файл к нужным .cpp (где нужна Masiv).
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
02.06.2014, 17:29  [ТС] #7
Вынес в отдельный файл, перекомпилировал, выдает все ту же ошибку
0
RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
02.06.2014, 17:35 #8
Может просто переменную объявить в хэдере, а в конструкторе формы или где ещё её инициализировать?

File_for_Form_MainWindow.h - тут пусть в private будет поле PuzzleGrid Masiv
masiv.initialize(shlax); - добавьте метод initialize к классу PuzzleGrid.
0
Riddleman
1 / 1 / 4
Регистрация: 03.03.2013
Сообщений: 49
02.06.2014, 18:48  [ТС] #9
Допёрло наконец, я определил объект внутри функции, а так нельзя. Выходит хоть и при объявлении есть модификатор extern определять ее всеравно нужно как глобальную, вне функцый.

Добавлено через 1 час 3 минуты
Да, на радостях забыл. Спасибо всем кто откликнулся
0
02.06.2014, 18:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 18:48
Привет! Вот еще темы с ответами:

Ошибка линковщика Unresolved External - C++
Всем доброго времени! Проблема вот с этим: #include &lt;iostream&gt; #include &lt;conio&gt; using namespace std; #pragma hdrstop ...

Ошибка Unresolved external . . . from OBJ - C++
Код программы. //--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop ...

Ошибка unresolved external symbol _NetUserGetInfo@16 - C++
unresolved external symbol _NetUserGetInfo@16 что это за ошибка и почему появляется?

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


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

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

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