Build
[Linker Warning] Public symbol '_GUID_NULL' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\IMPORT32.LIB|uuid and C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\UUID.LIB|uuid
Подавить ненавистный Warning _GUID_NULL
Код:
Хочу от него избавиться. Возможно ли как-то подавить через #pragma именно его ? Или может есть решение как избавиться от предупреждения ?
Первое, на что нужно обращать внимание - это формат h файлов, из-за некорректности которых может возникнуть повторное включение (include) кода заголовочного файла
Код:
#ifndef ИМЯ_ФАЙЛА_H
#define ИМЯ_ФАЙЛА_H
// Здесь мы пишем код
#endif
#define ИМЯ_ФАЙЛА_H
// Здесь мы пишем код
#endif
Также проблема может быть с глобальными переменными, объявленными в h.
Исправляем так
Код:
// в h файле
extern TMyType MyObject; // предварительное объявление
// в cpp фале
TMyType MyObject; // объявление
extern TMyType MyObject; // предварительное объявление
// в cpp фале
TMyType MyObject; // объявление
Код:
//===========================================================================
#define STATIC_GUID_NULL \
0x00000000L, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DEFINE_GUIDSTRUCT("00000000-0000-0000-0000-000000000000", GUID_NULL);
#define GUID_NULL DEFINE_GUIDNAMED(GUID_NULL)
//===========================================================================
#define STATIC_GUID_NULL \
0x00000000L, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DEFINE_GUIDSTRUCT("00000000-0000-0000-0000-000000000000", GUID_NULL);
#define GUID_NULL DEFINE_GUIDNAMED(GUID_NULL)
//===========================================================================
А как мне переопределить его в своем коде, чтобы линкер не ругался ?
Цитата: SABROG
Есть такое предупреждение
Хочу от него избавиться. Возможно ли как-то подавить через #pragma именно его ? Или может есть решение как избавиться от предупреждения ?
Код:
Build
[Linker Warning] Public symbol '_GUID_NULL' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\IMPORT32.LIB|uuid and C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\UUID.LIB|uuid
[Linker Warning] Public symbol '_GUID_NULL' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\IMPORT32.LIB|uuid and C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\UUID.LIB|uuid
Хочу от него избавиться. Возможно ли как-то подавить через #pragma именно его ? Или может есть решение как избавиться от предупреждения ?
F1->Index->"Linker Warnings"->Ok
или
клик на ворнинге и F1.
Дело в том, что я сам вручную ни одной библиотеки не подключал, чтобы возник подобный конфликт, если не считать того, что я использую обычные компоненты, которые набросал на форму. И это единственный warning, который возникает во время линковки в моей программе на 5к строк, просто раздражает уже...