Символ глобальной карты не «видим»: как поделиться глобальной картой из общей библиотеки?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Символ глобальной карты не «видим»: как поделиться глобальной картой из общей библиотеки?

Сообщение Anonymous »

У меня есть библиотека с несколькими глобальными картами:
в заголовке (header0):

Код: Выделить всё

extern std::map AVPixelFormatMap;
extern std::map AVMediaTypeMap;
extern std::map AVCodecIDMap;
в cpp (cpp0):

Код: Выделить всё

std::map AVPixelFormatMap
{
{AV_PIX_FMT_NONE, "AV_PIX_FMT_NONE: None"},
и т. д.
В другой библиотеке я включаю заголовок0 в файл cpp и ссылаюсь на файл библиотеки0.lib, но компилятор жалуется с ошибкой LNK2001:

Код серьезности Описание Состояние подавления строки файла проекта
Ошибка LNK2001 неразрешенный внешний символ "класс" std::map AVPixelFormatMap"
(?AVPixelFormatMap@@3V?$map@W4AVPixelFormat@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$less@W4AVPixelFor mat@@@3@V?$allocator@U?$pair@$$CBW4AVPixelFormat@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@ станд@@@3@@std@@А) Library0 path/to\library0.obj 1

Я хотел бы использовать эти карты в общей библиотеке и не встраивать их в другие библиотеки, используя это.
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/792 ... hared-libr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»