Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перекрестные ссылки

1.7K
22 ноября 2002 года
Mark
114 / / 21.11.2002
Подскажите как избавиться от перекрёстных ссылок. Я имею ввиду
[Linker Warning] Public symbol '_prog' defined in both module <модуль>.OBJ and <модуль>.OBJ
Если я не ошибаюсь, паттерн даже есть на эту тему.

Они, конечно, не сильно мешают... но их уже больше 400!:x
358
22 ноября 2002 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Mark
Подскажите как избавиться от перекрёстных ссылок. Я имею ввиду
[Linker Warning] Public symbol '_prog' defined in both module <модуль>.OBJ and <модуль>.OBJ
Если я не ошибаюсь, паттерн даже есть на эту тему.

Они, конечно, не сильно мешают... но их уже больше 400!:x


если правильно понял то проблема решается следующим образом:
при объявлении в хидере класса MyClass пишу следующее:
#ifndef __MyClass__
#define __MyClass__
class MyClass
{
//
};
#endif

1.7K
23 ноября 2002 года
Mark
114 / / 21.11.2002
Извиняюсь за беспокойство, всё оказалось проще: в одном из хидеров был ни к чему не привязанный extern int prog.

Это меня смутили критикой в адрес хаотично подключаемых хидеров. Я думал, проблема в общей логической схеме подключения.

Спасибо за участие!
4.5K
28 мая 2003 года
n0mer
1 / / 28.05.2003
>Подскажите как избавиться от перекрёстных ссылок.
>Я имею ввиду
>[Linker Warning] Public symbol '_prog'
>defined in both module <модуль>.OBJ and <модуль>.OBJ

>Они, конечно, не сильно мешают... но их уже больше 400!:x
Насчет того , что не сильно мешают:
у меня такое же сообщение , и когда я в одном модуле задаю границу массива , программа создает копию , и при этом при обращении к этому коду из другого модуля значение остается неициализированным.
5.8K
21 октября 2003 года
ivf
2 / / 21.10.2003
та же проблема: один .h с константами, подключается в нескольких местах. по идее, все константы защищены от редифайна (парой #ifndef / #define, #endif). на все константы выдается подобный ворнинг во всех файлах где включается хедер. как с этим бороться?
293
22 октября 2003 года
SEDEGOFF
586 / / 06.10.2002
Объявить все константы в одном файле и везде подключать его
5.8K
22 октября 2003 года
ivf
2 / / 21.10.2003
Цитата:
Originally posted by SEDEGOFF
Объявить все константы в одном файле и везде подключать его



так по идее и делается:
constant.h:
#ifndef ___CONSTANTS
#define ___CONSTANTS

int VARIABLE1 = XXX;
int VARIABLE2 = YYY;
...

#endif

file1.cpp:
#include "constants.h"
...
int v1 = VARIABLE1;
...

file2.cpp:
#include "constants.h"
...
int v2 = VARIABLE2;
...

etc

В итоге при линковке имеем предупреждения типа Public symbol VARIABLE1 defined in both module file1 and file2

293
22 октября 2003 года
SEDEGOFF
586 / / 06.10.2002
Завтра скажу как правильно
а может попробывать

так по идее и делается:
constant.h:
...
extern int VARIABLE1 = XXX;
extern int VARIABLE2 = YYY;
...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог