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

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

Сообщение Anonymous »

У меня есть библиотека с несколькими глобальными картами: < /p>
В заголовке (Header0): < /p>

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

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:

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

> Severity  Code    Description Project File    Line    Suppression State   Details
> Error LNK2001 unresolved external symbol "class std::map AVPixelFormat,class std::basic_string std::char_traits,class std::allocator >,struct
> std::less,class std::allocator std::pair std::basic_string std::allocator > > > > AVPixelFormatMap"
> (?AVPixelFormatMap@@3V?$map@W4AVPixelFormat@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$less@W4AVPixelFormat@@@3@V?$allocator@U?$pair@$$CBW4AVPixelFormat@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@3@@std@@A)  library0    path/to\library0.obj    1
Я попробовал extern __declspec(dllexport) std::map

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

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

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

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

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

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