![]() |
|
Модераторы: bsa |
![]()
|
|
| kuvshinka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
смысл следующий - в 2 модулях - mainwindow и unit2 мне надо использовать данные из массива objStruk - соотвественно чтобы получить к нему доступ надо подключить файл его описания - module1.cpp, на что в модуле unit2.cpp выдаются ошибки: error: multiple definition of ‘objStruk’ first defined here: mainwindow.cpp как мне исправить эту ошибку при условии того, что структуру модуля module1 трогать нежелательно... |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
подключать заголовочные файлы, прочитав перед этим повнимательнее книжки на эту тему.. Добавлено через 1 минуту и 21 секунду и при чем тут кроссплатформенное программирование ?! |
|||
|
||||
| kuvshinka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
mes: Вы имеете ввиду, что надо вместо module1.cpp подключать module1.h? это я и сама так думала, но тогда все равно в модуле unit2.cpp (то есть там, где я пытаюсь использовать массив objStruk) уже в ввиде "вопроса" (в синем кружке знак вопроса) пишется
undefined reference to objStruk (что верно, ведь массив объектов структуры objStruk, который я пытаюсь использовать, инициализирован в cpp-файле, а я подключаю хедер) и ошибка collect2: ld returned 1 exit status |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не все равно, а другая ошибка.. у вас не прилинкована та часть в которой массив.. |
|||
|
||||
| kuvshinka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
mes: а как ее прилинковать? как исправить эту ошибку?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если компилируете в IDE, то добавить исходник к проекту.. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
kuvshinka, в .h файле напишите:
extern const StrukData objStruk[10]; и подключайте его где нужно, сколько угодно. а .cpp оставьте только 1 раз. |
|||
|
||||
| kuvshinka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
mes: я компилирую в Qt Creator-e 4.6....какой именно исходник надо подключить к проекту? у меня и так все указанные выше модули (их cрр- и h -файлы) подключены в pro-файле проекта...
Добавлено через 11 минут и 59 секунд volatile: в каком именно моем h - файле надо написать: extern const StrukData objStruk[10]; и что значит "а .cpp оставьте только 1 раз." (опять же какой именно cpp-файл и что значит "оставить"?) |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Это ваш сипипи. Назовём его kuvshinka.cpp Его дабавляете в проект 1 раз, естественно. И никуда больше не включаете. А это ваш хедер, назовём его kuvshinka.h Ну и там где надо, (да не запрещено даже там, где не надо), добавляете: #include “kuvshinka.h” |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
const по умолчанию имеет внутренее связывание, поэтому в cpp также нужно не забыть extern
Это сообщение отредактировал(а) mes - 25.9.2011, 13:28 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Можно ещё так:
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |