C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
linker error, помогите!
Kathel
Отправлено: 03.06.2006, 17:42


Ученик-кочегар

Группа: Участник
Сообщений: 9



Помогите, пожалуйста!
Все перепробовала, ничего не помогает!

В модуле Parser.h есть namespace:

namespace Parser
{
extern Signature*S1;
extern char* str1;
extern int j1;
}


В модуле Formula есть функция, которая использует переменные этого namespace'а. Вот так:

bool FormulaTerm::StrToTree(char* str,int state)
{
using namespace Parser;
if(state==1)
{
S1 = S;
str1 = str;
j1 = 0;
}
}

Когда компилирую, выдает

[linker error] Unresolved external 'Parser::str1' причем referenced из ...Formula.obj
Как обьяснить билдеру namespace?
viva
Отправлено: 05.06.2006, 03:48


Дежурный стрелочник

Группа: Участник
Сообщений: 31



QUOTE (Kathel @ 03/06/2006, 17:42)
В модуле Parser.h есть namespace:

namespace Parser
{
extern Signature*S1;
extern char* str1;
extern int j1;
}

CODE
extern char* str1;

Это не объявление переменной, а указание на то, что где-то есть объявление
CODE
char* str1;

Так вот linker не находит такого объявления
Kathel
Отправлено: 06.06.2006, 20:43


Ученик-кочегар

Группа: Участник
Сообщений: 9



Спасибо Вам за отзыв и совет!
Просто в пространстве имен как раз есть обьявление
[CODE]
char* str1;

А вот почему он его не видит????
Извиняюсь за чайниковость:)
Shagg
Отправлено: 07.06.2006, 13:42


Дежурный стрелочник

Группа: Участник
Сообщений: 69



А почему бы не написать так:
CODE

namespace Parser
{
//................
 char* str1;
//................
}

дело в том, что в строке
CODE
str1 = str;
билдер пытается присвоить переменной str1 какое то значение, хотя переменная нигде не объявлена,вот он и ругается матом

Вернуться в Вопросы программирования в C++Builder