Ссылка на OCCI libs генерирует предупреждения о std::string

Я создал проект статической библиотеки (SLL), который использует std::string, Затем я связал это с oraocci12.lib (для выпуска) и oraocci12d.lib (для отладки). И только после связывания статической библиотеки с библиотеками OCCI, проект генерирует много предупреждений о std::string, Все предупреждения касаются уже определенных символов, например:

предупреждение LNK4006: "public: void __cdecl std::basic_string, класс std::allocator >::_Copy(без знака __int64, без знака __int64)" (?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K0@Z) уже определен в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "public: char * __cdecl std::_Wrap_alloc >::allocate(unsigned __int64)" (?allocate@?$_Wrap_alloc@V?$allocator@D@std@@@std@@QEAAPEAD_K@Z) уже определено в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "public: класс std:: basic_string, класс std::allocator > & __cdecl std::basic_string, класс std::allocator >::assign(класс std:: basic_string, класс std::allocator > const &,unsigned __int64,unsigned __int64)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z) уже определены в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "public: класс std:: basic_string, класс std::allocator > & __cdecl std::basic_string, класс std::allocator >::assign(char const *,unsigned __int64)" (?assign@?$basic_string@DU?$ Char_traits @ D @ std @@ V? $ Allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z) уже определены в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "public: класс std:: basic_string, класс std::allocator > & __cdecl std::basic_string, класс std::allocator >::erase(без знака __int64, без знака __int64)" (?erase@?$basic_string@DU?$ Char_traits @ D @ std @@ V? $ Allocator@D@2@@std@@QEAAAEAV12@_K0@Z) уже определены в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "строка" (??_C@_0BA@JFNIOLAK@string?5too?5long?$AA@) уже определена в oraocci12.lib(oraocci12.dll); второе определение игнорируется

предупреждение LNK4006: "строка" (??_C@_0BI@CFPLBAOH@ неверно?5string?5position?$AA@) уже определена в oraocci12.lib(oraocci12.dll); второе определение игнорируется

Я попытался изменить:

  • Набор инструментов платформы в Свойствах проекта => Общие.

  • Набор символов в Свойствах проекта => Общие.

  • Библиотека времени выполнения в Свойствах проекта => C/C++ => Генерация кода.

  • Подробно в свойствах проекта => Библиотекарь => Общие.

  • Игнорировать все библиотеки по умолчанию в свойствах проекта => Библиотекарь => Общие.

Также пробовал ссылаться на разных оракулов:

  • msvc \ vc14 \ oraocci12.lib (выпуск)
  • msvc \ vc14 \ oraocci12d.lib (отладка)
  • msvc \ oraocci12.lib (выпуск)
  • msvc \ oraocci12d.lib (отладка)

Я также попробовал много комбинаций вышеупомянутого, но проблема сохраняется.

IMP: это происходит, если тип проекта sll, Если он изменен на dll затем предупреждения исчезают.

Детали среды:

  • Visual Studio Professional 2017 (15.6.7)
  • Тип проекта - Статическая библиотека (sll, x64)
  • Windows 10
  • Oracle instantclient-sdk-windows.x64-12.2.0.1.0

Спасибо всем!

0 ответов

Другие вопросы по тегам