I'm trying to compile a code in C++ with the bullet3 library. I'm in Windows, using MinGW x64. I use the command line (PowerShell) to compile.
I used CMake to and MinGW-make to build bullet3. When I tryed to build with all options on CMake, I get these errors: https://i.stack.imgur.com/onJ6O.png
So I made with every value off, and It does successfully: https://i.stack.imgur.com/1hWcB.png
I do the make, and get the .a files: https://i.stack.imgur.com/WM3MN.png
When I try to compile a program using the command:
C:\MinGW\bin\g++.exe -std=c++11 -IC:\OpenGL\GLFW\include -IC:\OpenGL\GLEW\include -IC:\OpenGL\glm -ID:\Code\CG-Learning\bullet3\src -LC:\OpenGL\GLEW\lib\Release\x64 -LC:\OpenGL\GLFW\lib-mingw-w64 -LC:\OpenGL\bullet\lib d:\Code\CG-Learning\MazeCeption\main.cpp d:\Code\CG-Learning\MazeCeption\common\shader.cpp d:\Code\CG-Learning\MazeCeption\common\objloader.cpp d:\Code\CG-Learning\MazeCeption\camera.cpp d:\Code\CG-Learning\MazeCeption\fisiqs.cpp d:\Code\CG-Learning\MazeCeption\gameplay.cpp d:\Code\CG-Learning\MazeCeption\light.cpp d:\Code\CG-Learning\MazeCeption\maze.cpp d:\Code\CG-Learning\MazeCeption\multiObject.cpp d:\Code\CG-Learning\MazeCeption\object.cpp d:\Code\CG-Learning\MazeCeption\singleObject.cpp -o main.exe -lglew32s -lglfw3 -lopengl32 -lglu32 -lgdi32 -lBullet3Common -lBulletCollision -lBulletDynamics -lBulletInverseDynamics -lBulletSoftBody -lLinearMath -mwindows -DGLEW_STATIC
I get those errors:
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x4e50): undefined reference to `btCollisionWorld::convexSweepTest(btConvexShape const*, btTransform const&, btTransform const&, btCollisionWorld::ConvexResultCallback&, float) const'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x5939): undefined reference to `btCollisionWorld::convexSweepTest(btConvexShape const*, btTransform const&, btTransform const&, btCollisionWorld::ConvexResultCallback&, float) const'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6394): undefined reference to `btCollisionWorld::serializeCollisionObjects(btSerializer*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x63aa): undefined reference to `btCollisionWorld::serializeContactManifolds(btSerializer*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x66c6): undefined reference to `btCollisionWorld::btCollisionWorld(btDispatcher*, btBroadphaseInterface*, btCollisionConfiguration*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6985): undefined reference to `btSimulationIslandManager::btSimulationIslandManager()'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6aca): undefined reference to `btCollisionWorld::~btCollisionWorld()'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6d0b): undefined reference to `btCollisionWorld::~btCollisionWorld()'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6ee5): undefined reference to `btSimulationIslandManager::buildAndProcessIslands(btDispatcher*, btCollisionWorld*, btSimulationIslandManager::IslandCallback*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x7443): undefined reference to `btCollisionWorld::debugDrawWorld()'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x1a1): undefined reference to `btCollisionWorld::addCollisionObject(btCollisionObject*, int,
int)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x1d1): undefined reference to `btCollisionWorld::removeCollisionObject(btCollisionObject*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x227): undefined reference to `btCollisionWorld::removeCollisionObject(btCollisionObject*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x24f): undefined reference to `btCollisionWorld::removeCollisionObject(btCollisionObject*)'
C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj):btDiscreteDynamicsWorld.cpp:(.text+0x6c89): undefined reference to `btCollisionWorld::~btCollisionWorld()'
c:/mingw/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\OpenGL\bullet\lib/libBulletDynamics.a(btDiscreteDynamicsWorld.obj): bad reloc address 0x0 in section `.pdata$_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw'
collect2.exe: error: ld returned 1 exit status
I'm using GLEW and GLFW, but it compile and execute successfully without bullet.
I predict is something with the bullet build or something else. What I can do to solve this?