Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
#1

Конфликт имен в библиотеках - C++

14.07.2014, 15:44. Просмотров 409. Ответов 5
Метки нет (Все метки)

Здравствуйте. Возникла проблема при одновременном подключении #include <X11/extensions/xf86vmode.h>
и #include "FreeImage.h"
Код ошибки:
C++
1
2
3
4
5
6
In file included from GUIImageManager.h:13:0,
                 from main.cpp:13:
/usr/include/FreeImage.h:139:17: ошибка: conflicting declaration «typedef int32_t BOOL»
In file included from /usr/include/X11/extensions/xf86vmode.h:37:0,
                 from main.cpp:9:
/usr/include/X11/Xmd.h:143:16: ошибка: «BOOL» has a previous declaration as «typedef CARD8 BOOL»
Что делать в такой ситуации? Как разрешить конфликт имен?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2014, 15:44     Конфликт имен в библиотеках
Посмотрите здесь:

конфликт имен C++
Можно ли Хорошо посмотреть информацию о графическом файле в разных библиотеках? C++
Конфликт имен при множественном наследовании struct C++
Конфликт имён C++
C++ Кто-то работал или слышал о библиотеках jrtplib, emiplib?
C++ Ошибки LNK2001 в библиотеках
C++ Использование имен предопределенных объектов в качестве имен переменных
Работа с классами в динамических библиотеках linux C++
Чтение кода в библиотеках C++
C++ Использование статических методов класса в динамических библиотеках
C++ Область видимости в библиотеках
C++ Программирование логики в нативных библиотеках С++ для использования в нескольких видах проектов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
14.07.2014, 15:46     Конфликт имен в библиотеках #2
DarkVortex, Объявления ведь в глобальном пространстве имен? Если да, то никак. Править инклуды.
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
14.07.2014, 15:49  [ТС]     Конфликт имен в библиотеках #3
Обойдется ли одними инклудами? Если да то какие могут быть последствия? В одном месте BOOL декларируется как unsigned char в другом как int.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
14.07.2014, 15:52     Конфликт имен в библиотеках #4
DarkVortex, Не факт что обойдется, нужно смотреть глубже. Наличие проблем тоже сходу не сказать.
Voivoid
 Аватар для Voivoid
589 / 265 / 12
Регистрация: 31.03.2013
Сообщений: 1,324
14.07.2014, 16:02     Конфликт имен в библиотеках #5
Не подключать оба хидера в одной единице трансляции, для этого разбить соответствующим образом логику на независимые части

Добавлено через 8 минут
Если библиотека header only, то можно попробовать че-нить типа такого:

C++
1
2
3
namespace xxx {
  #include <header.hpp>
}
но тут надо быть осторожным
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
14.07.2014, 16:20  [ТС]     Конфликт имен в библиотеках #6
Спасибо nemespace спас положение.
Yandex
Объявления
14.07.2014, 16:20     Конфликт имен в библиотеках
Ответ Создать тему
Опции темы

Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru