![]() |
|
Модераторы: xvr |
![]()
|
|
| Alkash |
|
||||||||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Доброго дня, уважаемые форумчане. Использую QT Ctreator 2.2.1 в Ubuntu 11.10,
есть переменная объявленная как
в header.h, далее в коде одного из классов - она достаточно часто используется в виде:
Компилирую проект, хидер подключен...и внезапно линковщик ругается:
Ключи, с которыми собирается:
-------------------- Подпись >> /dev/null |
||||||||
|
|||||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
где объект bdpath ?
Добавлено через 7 минут и 27 секунд хех)) bdpath у тебя типа char. но как ты умудрился заставить компилятор молчать при передаче чара в strlen? |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Он на самом деле extern char *bdpath; Да как-то схавал нормально, не подавился. bdpath объявлен в header.h -------------------- Подпись >> /dev/null |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
где сам объект bdpath создается?
extern всего лишь говорит линкеру искать реализацию позже, после компиляции. |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Дык в том же cpp, что и собирается - там и создается.
-------------------- Подпись >> /dev/null |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
показывай.
|
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
в headers.h
char *bdpath. в .cpp -
-------------------- Подпись >> /dev/null |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Alkash, extern <var_def> - это ОБЪЯВЛЕНИЕ переменной. Оно сообщает компилятору, что указанная переменная где-то ОПРЕДЕЛЕНА, но, возможно, в другой единице трансляции (*.cpp файле). Определением переменной является запись без extern.
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
Alkash, ты таки реально в танке
я спрашиваю, где объект создается? и объяснил что такое extern. чего ты мне снова свой extern пихаешь?! Это сообщение отредактировал(а) boostcoder - 21.3.2012, 16:15 |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Тогда я таки - невкуриваю, что ты подразумеваешь под объектом-))) Мож уже кстати и в танке-))) Но таки - собралось уже, действительно - перепутал опередление с реализацией. Всем спасибо.
-------------------- Подпись >> /dev/null |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
для спасибоф, есть соответствующие кнопки.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |