Я новичок в C ++, Visual Studio (2019) и Bullet (2.89). Я пытался собрать Hello_World. cpp из Bullet в течение последних нескольких дней, но я застрял на этих 5 ошибках компоновки:
1>Hello_World.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btCollisionShape::getBoundingSphere(class btVector3 &,float &)const " (?getBoundingSphere@btCollisionShape@@UBEXAAVbtVector3@@AAM@Z)
1>Hello_World.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall btCollisionShape::getAngularMotionDisc(void)const " (?getAngularMotionDisc@btCollisionShape@@UBEMXZ)
1>Hello_World.obj : error LNK2001: unresolved external symbol "public: virtual float __thiscall btCollisionShape::getContactBreakingThreshold(float)const " (?getContactBreakingThreshold@btCollisionShape@@UBEMM@Z)
1>Hello_World.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btConvexShape::project(class btTransform const &,class btVector3 const &,float &,float &,class btVector3 &,class btVector3 &)const " (?project@btConvexShape@@UBEXABVbtTransform@@ABVbtVector3@@AAM2AAV3@3@Z)
1>Hello_World.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall btSphereShape::calculateLocalInertia(float,class btVector3 &)const " (?calculateLocalInertia@btSphereShape@@UBEXMAAVbtVector3@@@Z)
Есть другие люди, которые имели это или подобное проблема, но не получил ответа, или у меня не получилось.
setup:
- Я использовал premake для настройки VS-решения, Bullet организован в stati c Libraries (как проекты с исходным кодом, который компилируется в файлы lib), и я сейчас пытаюсь связать их с приложением-проектом.
- все проекты используют stati c linking (для отладки).
- Я ссылался на все проекты маркеров в моем проекте.
- Я даже статически связывался с файлами lib из bullet (и компоновщик может видеть эти файлы, я даже пытался указать абсолютный путь)
- Насколько я могу судить, функции существуют и имеют одинаковую подпись в файлах. cpp и .h
Если вам нужно больше подробностей, сообщите мне.
(Возможно, у меня есть одна возможность отличается bt_double_precision? Но это может быть не так, и единственное, что я смог найти, это модель с плавающей запятой, использующая различную точность. Но сделать то же самое ничего не сделало)
Заранее спасибо!
РЕДАКТИРОВАТЬ: Я не думаю, что этот ответ относится ко мне
Что такое неопределенная ссылка / неразрешенная внешняя ошибка символа и как ее исправить?
РЕДАКТИРОВАТЬ: Возможно, стоит упомянуть: файловая структура проекта действительно странно (продиктовано premake):
- файлы решения и проекта находятся в: bullet3-2.89 \ build3 \ vs2010
- файлы заголовков высокого уровня (это те, которые используются Hello_World и включают Hello другие заголовки): bullet3-2.89 \ sr c
- исходные файлы и заголовочные файлы являются подкаталогами библиотек bullet3-2.89 \ sr c
- : bullet3-2.89 \ bin, но используются все заголовки правильные относительные пути в их include, и я установил каталоги include и library проекта в эти места