Есть ли способ заставить g ++ игнорировать или работать с конфликтующими typedefs?Избежать противоречивых ошибок объявления в typedef C++
фон:
Я пишу некоторые C++ кода для gridlab_d тренажера. Моей модели необходимо подключиться к базе данных C++, поэтому я использую библиотеку mysql ++. использование MySQL ++ библиотека требует от меня, чтобы связать с библиотекой MySQL, поэтому я компилировать с
g++ -I/usr/include/mysql -I/usr/local/include/mysql++
Проблема:
как mysql.h и list.h в gridlab ЬурейеЕ в структуры, чтобы иметь имя СПИСОК. Вот ошибка компилятора
In file included from /usr/include/mysql/mysql.h:76,
from /usr/include/mysql++/common.h:182,
from /usr/include/mysql++/connection.h:38,
from /usr/include/mysql++/mysql++.h:56,
from direct_data.cpp:21:
/usr/include/mysql/my_list.h: At global scope:
/usr/include/mysql/my_list.h:26: error: conflicting declaration 'typedef struct st_list LIST'
../core/list.h:22: error: 'LIST' has a previous declaration as 'typedef struct s_list LIST'
Спасибо за вашу помощь!
Не можете ли вы поставить '# ifndef' вокруг одного из определений? – lapk
Возможно, вы могли бы создать свои собственные абстракции, которые могут быть скомпилированы независимо, поэтому оба типа typedef не отображаются в одном модуле компиляции. –