Я пытаюсь использовать движок Bullet Physics в своем проекте и испытываю проблемы при связывании.MSVC Название mangling and linking (using Bullet Physics)
Этот символ не доступен (ошибка линкера):
"" пустота * __cdecl btAlignedAllocInternal (без знака __int64, целое) "(btAlignedAllocInternal @@ YAPEAX_KH @ Z?)" В Funktion "" общественности: статические аннулируются * __cdecl btCollisionObject :: оператор новый (без знака __int64) "(?? 2btCollisionObject @@ SAPEAX_K @ Z)"
Я использовал
E: \ SDKs \ пулей 2,82-r2704 \ Lib > Демпфинг/символы Bulle tDynamics.lib | Findstr/R/ C: "btAlignedAllocInternal"
, чтобы проверить, если символ доступен, результат:
17F 00000000 UNDEF notype() Внешняя | ? BtAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 121 00000000 UNDEF notype () Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 07A 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 0AF 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 0B6 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 07F 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 308 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 16B 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 279 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 2C7 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 3C6 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 249 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 675 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 39E 00000000 UNDEF notype() Внешний | ? btAlignedAllocInternal @@ YAPAXIH @Z (void * __cdecl btAlignedAllocInternal (unsigned int, int)) 24D 00000000 UNDEF notype() Внешний | ? BtAlignedAllocInternal @@ YAPAXIH @Z (аннулируются * __cdecl btAlignedAllocInternal (неподписанных INT, INT))
Для меня это выглядит как символ не доступен (не соответствующие подогнанных имен), но я должен признаться, Я действительно не знаю, как создаются измененные имена символов.
Можете ли вы объяснить, где различия между YAPAXIH и YAPEAX_KH? Или у кого-нибудь есть другое предположение, что может быть неправильным?
Посмотрите на demangler: http://demangler.com/ BTW, обычно проблемы с компоновщиками решаются более простым способом. Например, вы добавили файл .lib в список зависимостей компоновщика? –
Благодарим вас за demangler.com. Да, если я удалю .lib, я получаю другую ошибку. – Dirk
Некоторые проблемы с битностью? Глядя на демарнированные функции, которые вы опубликовали, возможно, это совместимость с x86-x64. –