Эй, я просто сделал следующие шаги:
- Скачал Box2d 2.1.2 и использовал cmake для сборки снарядов msVS ++
- Построил Box2D.sln в режиме отладки и выпуска, ноне трогал библиотеки или библиотеки
- Сделал новый проект Win32 и скопировал код из "Hello World", который был включен в загрузку Box2D, в основной исходный файл моих новых проектов
- Добавленокаталог include для того же исходного кода, который используется Cmake для генерации проектов
- Добавил проект "Box2D" (проект статической библиотеки) к решению, чтобы я мог изменить код библиотеки;Сгенерировано cMake
- Добавлен «Box2D» в качестве ссылки в общих свойствах моих новых проектов
- Посмотрел свойства библиотеки «Box2D» и установил «Связать зависимости библиотеки» в YES
- Обдумал вопрос, который я поставил в качестве комментария над включением (пожалуйста, ответьте также!)
Вот Hello World.cpp (пожалуйста, ответьте на вопрос в комментарии)
/* I've also added the "Box2D" project generated by cmake, which includes
all the same files that are in folder my include directory points to, so i could alter the code.
Does this mean i should change <Box2D\Box2D.h> to just "Box2D.h" ? */
#include <Box2D\Box2D.h>
#include "StdAfx.h"
#include <cstdio>
int main(int argc, char** argv)
{
B2_NOT_USED(argc);
B2_NOT_USED(argv);
// Define the gravity vector.
b2Vec2 gravity(0.0f, -10.0f);
// Do we want to let bodies sleep?
bool doSleep = true;
// blah blah, rest of code doesn't matter
}
Однако при попытке запустить это я получаю ошибки, такие как
1>c:\libraries and headers\box2d_v2.1.2\box2d_v2.1.2\box2d\build\box2d helloworld\box2d helloworld\box2d helloworld.cpp(30): error C3861: 'B2_NOT_USED': identifier not found
, которые все о неопределенных идентификаторах, которые определены во многих заголовках, включенных в Box2D.h. Почему он их не видит?