Russian Qt Forum

Qt => Общие вопросы => Тема начата: 8Observer8 от Апрель 12, 2014, 13:46



Название: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 13:46
Привет!

Использую: Qt 5.2.1 for Windows 32-bit (MinGW 4.8, OpenGL, 634 MB)

У меня не получается откомпилировать это приложение: http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World (http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World)

Компилятор ругается:

(http://i6.pixs.ru/storage/7/8/4/172png_4369445_11658784.png)

Вот что я сделал:
- через cygwin64 установил cmake
- установил bullet по инструкции: http://bulletphysics.org/mediawiki-1.5.8/index.php/Installation (http://bulletphysics.org/mediawiki-1.5.8/index.php/Installation)

Получил папку include и lib:

(http://i.pixs.ru/storage/8/5/4/173png_1684107_11658854.png)

(http://i7.pixs.ru/storage/8/9/1/174png_9891140_11658891.png)

Подсоединил include и lib так:
Код
C++ (Qt)
QT       += core
 
QT       -= gui
 
TARGET = HelloBullet
CONFIG   += console
CONFIG   -= app_bundle
 
TEMPLATE = app
 
BULLET_LOCATION = C:/cygwin64/usr/local
INCLUDEPATH += $${BULLET_LOCATION}/include/bullet
LIBS = -L$${BULLET_LOCATION}/lib
 
SOURCES += main.cpp
 

Заранее спасибо за ответ!


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: kibsoft от Апрель 12, 2014, 15:35
Код:
LIBS = -L$${BULLET_LOCATION}/lib
Помимо пути к либам надо задавать их имена, например:
Код:
LIBS += -L$$(FFMPEG_LIBRARY_PATH) -lavformat


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:14
Спасибо большое! Теперь я представляю, что надо искать. Но как узнать название библиотеки? Пытаюсь искать - результата нет.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:21
Попытался вот так, но по-прежнему те же ошибки:
Цитировать
LIBS += -L$${BULLET_LOCATION}/lib
LIBS += -L$${BULLET_LOCATION}/lib  -lBulletDynamics -lBulletCollision -lLinearMath


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 16:32
Попытался вот так, но по-прежнему те же ошибки:
Цитировать
LIBS += -L$${BULLET_LOCATION}/lib
LIBS += -L$${BULLET_LOCATION}/lib  -lBulletDynamics -lBulletCollision -lLinearMath
Скажите, вы после изменения pro файла qmake не забываете запускать?
Первая строка лишняя.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:36
Пробовал:
- Run qmake
- Clean
- Rebuild
- даже папку Build удалял


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 16:37
Покажите ошибки с самого начала.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:41
Я думаю, что надо отладочные библиотеки подключать, как в Qwt я делал для debug:
Цитировать
LIBS += -L$${QWT_LOCATION}/lib \
     -lqwtd

Но в Bullet нет библиотек с буквой 'd'. Может надо было при перед сборкой Bullet настроить.

Покажите ошибки с самого начала.

(http://i6.pixs.ru/storage/1/0/4/175png_5864632_11661104.png)

main.cpp
Код
C++ (Qt)
#include <QCoreApplication>
#include <btBulletDynamicsCommon.h>
#include <iostream>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
   btBroadphaseInterface* broadphase = new btDbvtBroadphase();
 
   btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
   btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
 
   btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;
 
   btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);
 
   dynamicsWorld->setGravity(btVector3(0,-10,0));
 
 
   btCollisionShape* groundShape = new btStaticPlaneShape(btVector3(0,1,0),1);
 
   btCollisionShape* fallShape = new btSphereShape(1);
 
 
   btDefaultMotionState* groundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
   btRigidBody::btRigidBodyConstructionInfo
           groundRigidBodyCI(0,groundMotionState,groundShape,btVector3(0,0,0));
   btRigidBody* groundRigidBody = new btRigidBody(groundRigidBodyCI);
   dynamicsWorld->addRigidBody(groundRigidBody);
 
 
   btDefaultMotionState* fallMotionState =
           new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,50,0)));
   btScalar mass = 1;
   btVector3 fallInertia(0,0,0);
   fallShape->calculateLocalInertia(mass,fallInertia);
   btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,fallMotionState,fallShape,fallInertia);
   btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI);
   dynamicsWorld->addRigidBody(fallRigidBody);
 
 
   for (int i=0 ; i<300 ; i++) {
       dynamicsWorld->stepSimulation(1/60.f,10);
 
       btTransform trans;
       fallRigidBody->getMotionState()->getWorldTransform(trans);
 
       std::cout << "sphere height: " << trans.getOrigin().getY() << std::endl;
   }
 
   dynamicsWorld->removeRigidBody(fallRigidBody);
   delete fallRigidBody->getMotionState();
   delete fallRigidBody;
 
   dynamicsWorld->removeRigidBody(groundRigidBody);
   delete groundRigidBody->getMotionState();
   delete groundRigidBody;
 
   delete fallShape;
   delete groundShape;
 
   delete dynamicsWorld;
   delete solver;
   delete collisionConfiguration;
   delete dispatcher;
   delete broadphase;
 
   return a.exec();
}
 


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 16:45
Покажите консоль сборки креатора, там где он команды и ошибки печатает.
И лучше просто в виде текста. :)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:50
Я понял, о чём Вы. Просто у меня всегда окно "Compile Output" было скрыто. Я им не пользовался. Нашёл его в меню "Window" -> "Output Panels" -> "Compile Output"

Цитировать
17:46:53: Running steps for project HelloBullet...
17:46:53: Configuration unchanged, skipping qmake step.
17:46:53: Starting: "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe"
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'D:/Documents/Qt/QtBullet/build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
g++ -Wl,-subsystem,console -mthreads -o debug/HelloBullet.exe debug/main.o  -LC:/cygwin64/usr/local/lib -lBulletDynamics -lBulletCollision -lLinearMath -lBulletSoftBody -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib -lQt5Cored
debug/main.o: In function `main':
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:9: undefined reference to `btDbvtBroadphase::btDbvtBroadphase(btOverlappingPairCache*)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:11: undefined reference to `btDefaultCollisionConfiguration::btDefaultCollisionConfiguration(btDefaultCollisionConstructionInfo const&)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:12: undefined reference to `btCollisionDispatcher::btCollisionDispatcher(btCollisionConfiguration*)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:14: undefined reference to `btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver()'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:16: undefined reference to `btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btDispatcher*, btBroadphaseInterface*, btConstraintSolver*, btCollisionConfiguration*)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:21: undefined reference to `btStaticPlaneShape::btStaticPlaneShape(btVector3 const&, float)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:29: undefined reference to `btRigidBody::btRigidBody(btRigidBody::btRigidBodyConstructionInfo const&)'
D:\Documents\Qt\QtBullet\build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug/../HelloBullet/main.cpp:39: undefined reference to `btRigidBody::btRigidBody(btRigidBody::btRigidBodyConstructionInfo const&)'
debug/main.o: In function `ZN17btCollisionObjectnwEj':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h:123: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN17btCollisionObjectdlEPv':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h:123: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN13btSphereShapenwEj':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h:27: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN13btSphereShapedlEPv':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h:27: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN13btSphereShapeC1Ef':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h:29: undefined reference to `btConvexInternalShape::btConvexInternalShape()'
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h:29: undefined reference to `vtable for btSphereShape'
debug/main.o: In function `ZN18btStaticPlaneShapenwEj':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h:34: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN18btStaticPlaneShapedlEPv':
C:/cygwin64/usr/local/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h:34: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN20btDefaultMotionStatenwEj':
C:/cygwin64/usr/local/include/bullet/LinearMath/btDefaultMotionState.h:14: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN20btDefaultMotionStatedlEPv':
C:/cygwin64/usr/local/include/bullet/LinearMath/btDefaultMotionState.h:14: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN23btDiscreteDynamicsWorldnwEj':
C:/cygwin64/usr/local/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h:99: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN23btDiscreteDynamicsWorlddlEPv':
C:/cygwin64/usr/local/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h:99: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN17btTypedConstraintdlEPv':
C:/cygwin64/usr/local/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:112: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN35btSequentialImpulseConstraintSolvernwEj':
C:/cygwin64/usr/local/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h:112: undefined reference to `btAlignedAllocInternal(unsigned int, int)'
debug/main.o: In function `ZN35btSequentialImpulseConstraintSolverdlEPv':
C:/cygwin64/usr/local/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h:112: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN18btAlignedAllocatorIiLj16EE10deallocateEPi':
Makefile.Debug:77: recipe for target 'debug/HelloBullet.exe' failed
mingw32-make[1]: Leaving directory 'D:/Documents/Qt/QtBullet/build-HelloBullet-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
makefile:34: recipe for target 'debug' failed
C:/cygwin64/usr/local/include/bullet/LinearMath/btAlignedAllocator.h:90: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN18btAlignedAllocatorI9btHashIntLj16EE10deallocateEPS0_':
C:/cygwin64/usr/local/include/bullet/LinearMath/btAlignedAllocator.h:90: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o: In function `ZN18btAlignedAllocatorI14btTriangleInfoLj16EE10deallocateEPS0_':
C:/cygwin64/usr/local/include/bullet/LinearMath/btAlignedAllocator.h:90: undefined reference to `btAlignedFreeInternal(void*)'
debug/main.o:main.cpp:(.rdata$_ZTV17btTypedConstraint[__ZTV17btTypedConstraint]+0x30): undefined reference to `btTypedConstraint::serialize(void*, btSerializer*) const'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [debug/HelloBullet.exe] Error 1
mingw32-make: *** [debug] Error 2
17:46:54: The process "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project HelloBullet (kit: Desktop Qt 5.2.1 MinGW 32bit)
When executing step 'Make'
17:46:54: Elapsed time: 00:01.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 16:59
Получается, что там тоже самое, что и на картинке.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 17:02
Получается, что там тоже самое, что и на картинке.
Я на пути и на названия библиотек хотел посмотреть.

Странно как-то, или вы не все библиотеки подключили, или одно из двух.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:07
Подключил все, которые есть:
(http://i6.pixs.ru/storage/4/9/2/176png_6115410_11661492.png)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:11
Что интересно, если переключиться на Release, то ошибки всего четыре (по факту две):

(http://i7.pixs.ru/storage/5/3/9/177png_5785797_11661539.png)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 17:20
Вы готовые библиотеки скачивали или сами собирали. Если второе, то каким компилятором (из какой директории)?


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:23
Вы готовые библиотеки скачивали или сами собирали. Если второе, то каким компилятором (из какой директории)?

- скачал, распаковал
- зашёл в папку: C:\bullet-2.82-r2704
- ввёл команды:
cmake -DINSTALL_LIBS=ON
make -j4
make install
Как в инструкции: http://bulletphysics.org/mediawiki-1.5.8/index.php/Installation


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:28
Правда, когда вводил команду cmake, то забыл '-G'. Надеюсь, это не из-за этого. Что ключ '-G' обозначает?
Цитировать
-G <generator-name>         = Specify a makefile generator.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:33
Сейчас попробовал выполнить такие команды:

cmake -G "Unix Makefiles" -DINSTALL_LIBS=ON
make -j4
make install

Ничего не изменилось.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:36
Я из этой директории выполняю команды:

(http://i6.pixs.ru/storage/9/9/8/179png_2547503_11661998.png)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:43
Может здесь что-то не так?

Цитировать
C:\bullet-build>cmake /cygdrive/c/bullet-2.82-r2704 -G "Unix Makefiles" -DINSTALL_LIBS=ON
CMake Warning at /usr/share/cmake-2.8.11.2/Modules/Platform/CYGWIN.cmake:15 (message):
  CMake no longer defines WIN32 on Cygwin!

  (1) If you are just trying to build this project, ignore this warning or
  quiet it by setting CMAKE_LEGACY_CYGWIN_WIN32=0 in your environment or in
  the CMake cache.  If later configuration or build errors occur then this
  project may have been written under the assumption that Cygwin is WIN32.
  In that case, set CMAKE_LEGACY_CYGWIN_WIN32=1 instead.

  (2) If you are developing this project, add the line

    set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required

  at the top of your top-level CMakeLists.txt file or set the minimum
  required version of CMake to 2.8.4 or higher.  Then teach your project to
  build on Cygwin without WIN32.
Call Stack (most recent call first):
  /usr/share/cmake-2.8.11.2/Modules/CMakeSystemSpecificInformation.cmake:36 (include)
  CMakeLists.txt:7 (PROJECT)


-- Could NOT find OpenGL (missing:  OPENGL_gl_LIBRARY)
OPENGL NOT FOUND
-- WARNING: you are using the obsolete 'GLU' package, please use 'OpenGL' instead
-- Could NOT find GLUT (missing:  GLUT_glut_LIBRARY GLUT_INCLUDE_DIR)
GLUT NOT FOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /cygdrive/c/bullet-2.82-r2704

C:\bullet-build>


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Old от Апрель 12, 2014, 17:52
Думаю, что по умолчанию у вас стоит компилятор из cygwin и bullet собирался им, а вашу программу вы собираете компилятором из поставки Qt. Может из-за этого не линкуется.
Попробуйте собирать и библиотеку и программу одним компилятором.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 12, 2014, 17:55
Спасибо! Надеюсь, прокатит :)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: kibsoft от Апрель 12, 2014, 20:34
Под виндой еще можно так попробовать:
Цитировать
LIBS += -L$${BULLET_LOCATION}/lib  -llibBulletDynamics

Т.е. полное название файла.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 08:29
Под виндой еще можно так попробовать:
Цитировать
LIBS += -L$${BULLET_LOCATION}/lib  -llibBulletDynamics

Т.е. полное название файла.
Там фишка в том, что если имя написано неверно, то выводится сообщение "не могу найти"

Нашёл подробную пошаговую инструкцию: http://bulletphysics.org/mediawiki-1.5.8/index.php/Creating_a_project_from_scratch

Установил msys и указал его в инструкции выше.

Генерация выполняется (для этого отключаю в настройках Glut и построение всех примеров с Demos). Но по указанному пути в папке lib, для результирующих файлов - пусто.

Эта проблема слишком тяжёлая для меня. Оставлю до лучших времён.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Igors от Апрель 13, 2014, 08:54
Можно просто прямолинейно подключать исходники/хедеры в проект, работает. Нужна только либа  для OpenGL. Прекрасный проект, по исходникам можно много чему научиться. 


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 10:13
Спасибо огромное! Буду добавлять исходники по мере требования (выскакивания ошибок). Когда-то же они закончатся :) За одно, лучше познакомлюсь со структурой проекта. Это прекрасное решение, так как даёт возможность продвигаться дальше :)

У меня такое ощущение, что не все библиотеки собрались. Вот какие есть: -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath

А в проекте "Hello, World" подключается: #include <btBulletDynamicsCommon.h> Если посмотреть в исходники, то там есть такие папки:
(http://i.pixs.ru/storage/9/6/2/180png_3328108_11669962.png)

Я предполагаю, что должна была собраться ещё библиотека "-lBulletDynamicsCommon". Как раз в релизе и выскакивает сообщение, что невозможно найти реализацию одной из функций из этой библиотеки.

Хорошо, что в TotalCommander есть поиск текста по содержимому файлов. Добавлять исходников много приходится, но радует то, что  в Bullet не так уж много файлов :)


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 10:27
Я в предыдущем сообщении, по-моему, глупость написал. Bullet3Common не имеет никакого отношения к btBulletDynamicsCommon.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Igors от Апрель 13, 2014, 11:06
У меня такое ощущение, что не все библиотеки собрались. Вот какие есть: -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath
Зачем? В данном случае не видно резонов связываться с какими-то либами, просто добавляете в проект фолдеры с нужными исходниками. Т.к. "hello" не имеет превью (насколько я помню), то и OpenGL либа не нужна, для др примеров нужно будет подключить.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 11:08
Меня пугает, что добавлению нет конца. Он всё требует и требует. Я уже больше десятка .h .cpp подключил.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Igors от Апрель 13, 2014, 11:15
Меня пугает, что добавлению нет конца. Он всё требует и требует. Я уже больше десятка .h .cpp подключил.
То мало, подключайте сразу пачками (фолдерами).


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 11:21
Меня пугает, что добавлению нет конца. Он всё требует и требует. Я уже больше десятка .h .cpp подключил.
То мало, подключайте сразу пачками (фолдерами).
А как быть с cpp-файлами? Я их копирую в папку с проектом. А если я их буду подключать так:
Код:
SOURCES += ../FiveAndFive/FiveAndFive.cpp
То в любом случае мне придётся искать файл с реализацией и писать строчку подключения.


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: Igors от Апрель 13, 2014, 11:51
Я работаю в Xcode, там все подключение заняло неск минут

- прописал в преференсах путь Bullet (src)
- дропнул фолдеры в проект

См аттач как это выглядит. Как это сделать в Вашей IDE - не знаю, но полагаю что тоже возможно и несложно


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 13, 2014, 16:28
Igors, огромное спасибо!

Подскажите, пожалуйста, кто-нибудь, как в Qt Creator подключить все cpp-файлы напрямую? То есть всю папку src. А не увеличит ли это время сборки? Или компилятор собирает только те cpp-файлы, которые используются?

Если кто-то встречал подробную пошаговую инструкцию, как собрать Bullet и использовать в Qt (MinGW), то поделитесь, пожалуйста, ссылками.

Я потратил много времени, но всё же собрал вместе все нужные файлы и запустил этот пример: http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World

Исходники: https://github.com/8Observer8/HelloBullet


Название: Re: Приложение Hello, World! для Bullet в Qt
Отправлено: 8Observer8 от Апрель 28, 2014, 21:11
Может кому-нибудь пригодится информация.

Мне удалось собрать статическую библиотеку из исходников Bullet с помощью этой видео-инструкции: http://www.youtube.com/watch?v=37QvVrJnwQw

При сборке библиотеки включил в проект из "src" все файлы (все .h и .cpp) кроме модуля "Bullet3OpenCL"

Файлы подключал через Qt Creator "Add Existing Files..."

Этот пример моделирует падение шара с радиусом 1 метр c высоты 50 метров: http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World

Я использовал пример выше и нарисовал с помощью Qwt график падения.

Исходники примера с графиком (в файле pro подключаю все заголовочные файлы, кроме "Bullet3OpenCL"): https://github.com/8Observer8/bullet_PlotOfFalling

(http://i7.pixs.ru/storage/3/1/2/194png_2751907_11889312.png)