Box2d как подключить к visual studio
Скачал с официального сайта исходники box2d.
Открыл решение из c:\Users\Ytsukene\Documents\Visual Studio 2013\Projects\Box2D_v2.3.0\Box2D\Build\vs2012\Box2D.sln в Microsoft Visual Studio 2013.
Собрал решение - сборка прошла успешно, без ошибок.
Запускаю отладчик - выскакивает окошко: "Не удаётся запустить программу - C:\Users\Ytsukene\Documents\Visual Studio 2013\Projects\Box2D_v2.3.0\Box2D\Build\vs2012\bin\Debug\Box2 D.lib".
Подскажите пожалуйста, в чём может быть проблема.
В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib
В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib? Я предполагал что в Direct SDK(у.
Не удается открыть файл SDL.lib
проделал все как сказано здесь.
Вы же библиотеку собираете - с расширением .lib. Она и не должна быть запущена, а раз сборка прошла без ошибок, то всё хорошо.
Полученный Box2D.lib подключайте к вашим проектам.
Спасибо. Но, к сожалению, нигде нет хорошей инструкции о том, как подключить файлы lib к проекту. Я не понимаю, где в проекте VS 2013 прописать путь к библиотеке. Вы не могли бы подсказать?
Добавлено через 7 минут
Я пользовался этой инструкцией . Ввёл полный путь к файлу lib - c:\Users\. \Box2D.lib. Но при сборке снова выходит та же самая ошибка:
"fatal error C1083: Не удается открыть файл включение: Box2D.lib: No such file or directory"
Прошу прощения, долго не отвечал. Я добавил путь к папке с Box2D.lib в path. также добавил его в свойства проекта по инструкции выше. Но компилятор ругается на ошибки в самом Box2D.lib. До всего этого я просто копировал файл в папку со своим проектом, и компилятор выдавал то же самое. Прилагаю скриншот:
Наверное нет) но давайте я опишу то, что пытался сделать позднее:
(заранее оговорюсь: про собранные исходники я говорю как про решение или проект, а проект, в который я хочу присоединить библиотеку буду называть "игрой", чтобы не путаться)
1) Я обнаружил, что скачал вместе с исходниками скачал и собранное решение для vs2012 и как раз его пытался подключить. Поэтому, я скачал и поставил последнюю версию cmake и решил собрать решение под свою студию 2013.
К слову, моя система - Windows 7 64-bit, стало быть студия тоже 64-bit.
2) Согласно файлам readme, которые были в исходниках box2d, я сгенерировал cmake'ом решение для vs2013 x86 и vs2013 64. Смотрите первый скриншот.
Но проблемы не ушли:
3) Если оставить только 2 флажка, как было по умолчанию и как показано на скриншоте - при попытке запустить отладку решения - выскочит ошибка "Не удаётся запустить программу c:\Users\. \Box2D_v2.3.0\Box2D\Build\vs2013 x86\Debug\ALL_BUILD. Не удаётся найти указанный файл". Файлов там и вправду нет.
4) Если на после конфигурации поставить все флажки - при запуске отладки выскакивает: "Не удаётся запустить программу c:\Users\. \Box2D_v2.3.0\Box2D\Build\vs2013\x64\Debug\ALL_B UILD. Отказано в доступе."
Я запускал студию от имени админа, заходил в ОС под админом, отключал любимый родной Аваст, шатал брандмауэр - доступа не даёт. Иерархию папок в Debug смотрите на 2 скриншоте.
Во всех случаях, если попробовать подключить к Box2D.lib к "игре" так, как я это описывал в предыдущих комментариях - компилятор точно также ругается на ошибки в библиотеке.
Ytsukene, ещё и с CMake'ом. Дело принимает совершенно запутанный оборот. Остаётся мне попробовать самому скачать Box2D и испробовать на своём компьютере.
На всякий случай, киньте ссылку, откуда качали, я вечером, часа через 3-4 попытаюсь.
Распаковав архив, вы увидите файлы с документацией и папки.
Зайдя в папку Box2D вы увидите такую картину.
Это файлы библиотеки. Для того чтобы воспользоваться ими необходимо собрать библиотеку.
Premake5 собирает библиотеку по инструкции из файла premake5.lua. По умолчанию сборка производится только для 64-х битных систем. Если вам нужна сборка для 32-х битной системы, то отредактируйте файл в блокноте следующим образом: в 6 строке architecture “x86_64″ сотрите _64. Вы получите architecture “x86″. Сохраните файл.
Откройте командную строку и переведите её с помощью команды cd в каталог с файлами библиотеки. Впишите в неё команду premake5 vs2017. Запись vs2017 зависит от версии вашей visual studio. Нажмите enter и дождитесь окончания сборки.
Теперь вы можете пройти в каталог с собранным проектом.
В окне обозреватель решений назначьте проект Testbed автозагружаемым. Зайдите в его свойства. В категории “Отладка” установите рабочий каталог ..\..\Testbed. Теперь вы можете скомпилировать проект.
Подключение библиотеки
Для подключения библиотеки к вашему проекту подключите необходимые файлы как показано на картинках.
Дополнительные каталоги включаемых файлов. Подключите папку с файлами библиотеки.
Дополнительные каталоги библиотек. Подключите папку собранного проекта в соответствии с вашей конфигурацией. Debug – Debug. Release – Release.
Дополнительные зависимости. Впишите строку Box2D.lib.
На этом статья заканчивается. Надеюсь я все объяснил максимально понятно и информативно. Оставляйте свои вопросы в комментариях. Удачи в программировании!
Здравствуйте! Сегодня мы будем писать платформер, используя C++, Box2D и SFML, а также редактор 2D карт для игр Tiled Map Editor.
Вот результат (карта создавалась 5 минут + во время сьемки игра тормозила + экран не так растянут — дефект Bandicam):
Исходники и exe — внизу статьи.
Что, где, когда?
Box2D
Эту библиотеку мы будем использовать для симуляции физики в платформере (столкновение с блоками, гравитация). Возможно, не стоило для одних только блоков юзать эту библиотеку, но красиво жить не запретишь ;)
Почему именно Box2D? Потому что это самая распространенная и бесплатная физическая библиотека
Почему SFML? Вначале я хотел использовать библиотеку SDL, но она сильно ограничена в возможностях по сравнению с SFML, многое пришлось бы дописывать самому. Спасибо автору SFML за сэкономленное время!
Ее используем для отрисовки графики
Tiled Map Editor
Что делает тут Tiled Map Editor?
Вы когда-нибудь пробовали создавать карты для игр? Спорим, что вашей первой картой было что-то наподобие такого.
Это довольно неэффективное решение! Гораздо лучше написать что-то вроде редактора карт, но задним числом мы понимаем, что это не делается за 5 минут, а приведенная выше «карта» — вполне.
Tiled Map Editor — один из таких редакторов карт. Он хорош тем, что карту, созданную в этом редакторе (состоит из объектов, тайлов, их слоев) можно сохранить в XML-подобном файле .tmx и потом с помощью специальной библиотеки на C++ считать ее. Но обо всем по порядку.
Создание карты
Скачиваем TME с официального сайта
Создаем новую карту «Файл->Создать. »
Ориентация должна быть ортогональной (если вы не делаете изометрический платформер), а формат слоя XML, мы будем считывать именно этот формат
Кстати, ни формат слоя, ни размер тайлов нельзя будет поменять в созданной карте.
Тайлы
Затем идем в «Карта->Новый набор тайлов. », загружаем наш тайлсет:
В итоге у вас получится что-то вроде этого:
В чем смысл слоев тайлов?
Почти в каждой игре есть многослойные карты. Первый слой — земля (лед, чернозем, etc), второй слой — здания (казармы, форт, etc, причем фон прозрачен), третий — деревья (ель, пихта, etc, фон тоже прозрачен). То есть рисуется сначала первый слой, поверх него накладывается второй слой, а потом уже третий.
Процесс создания слоев запечатлен на следующих 4 скриншотах:
Объекты
Что такое объект в TME?
Объект имеет свое имя, тип, а также параметры со значениями.
За объекты отвечает эта панель
Вы вполне можете узнать, что делает каждая из кнопок, сами.
Теперь попробуем создать объект.
Удаляем слой «Колобоша», вместо него создаем слой объектов, допустим, с тем же названием «Колобоша». Выбираем «Вставить тайл-объект» из панели для объектов (или можете выбрать любую фигуру — Shape), нажимаем на тайл Колобоши и просто ставим объект в какое-нибудь место.
После чего нажимаем правой кнопкой мыши на объект и нажимаем на «Свойства объекта. ». Измените имя объекта на Kolobosha.
После чего сохраните карту.
В общем, ничего архисложного в редакторах карт нету. Пора переходить к считыванию карты.
Считывание карты
Для считывания XML файлов создана отличная библиотека TinyXML, скачайте ее исходники.
Создайте проект Visual Studio. Подключите файлы TinyXML (или просто запихайте все эти файлы в проект, за исключением xmltest.cpp :) )
Теперь подключаем includ'ы и lib'ы SFML в «Проект->Свойства». Если не знаете, как это делать — добро пожаловать в Гугл
Создаем Level.h для карт
Это начало файла.
Дальше идет структура объекта
Разберем её.
Как уже говорилось, в TME каждый объект может иметь параметры. Параметры берутся из XML файла, записываются в properties, и потом их можно получить любой из первых трех функций. name — имя объекта, type — его тип, rect — прямоугольник, описывающий объект. И наконец, sprite — спрайт (изображение) — часть тайлсета, взятая для объекта. Спрайта может и не быть.
Теперь идет структура слоя — она очень проста
В слое есть прозрачность (да, да, мы можем делать полупрозрачные слои!) и список из тайлов.
Дальше идет класс Level:
LoadFromFile загружает карту из указанного файла. Это сердце класса Level.
GetObject возвращает первый объект с указанным именем, GetObjects возвращает список объектов с указанным именем. Вообще-то, по-хорошему, следовало использовать тип (type) объекта, но мне было удобнее вылавливать блоки и игрока через имя, так как в редакторе имя показывается сверху объекта, а тип — нет.
Draw рисует все тайлы (не объекты!), беря себе экземпляр RenderWindow.
Теперь создаем Level.cpp:
Первым мы обрабатываем структуру объектов
Для Layer реализация не нужна, переходим к Level:
Остальные функции Level:
С Level.h окончено!
Протестируем его.
Создаем main.cpp и пишем:
Карта может выглядеть как угодно!
Можете поиграться с объектами:
Когда вы наиграетесь с объектами, наступит пора Box2D:
Коробки-коробочки
Мы хотим создать 3D-экшон платформер, суть такова…
На карте расположены объекты — с названиями player — игрок, enemy — враг, block — блок, money — монетки.
Мы загружаем игрока, заставляем его повиноваться нажатиям клавиши и силе Ньютона.
Враги ходят туда-сюда, отталкивают слишком близко находящегося игрока и погибают, если игрок прыгает на них
Блоки закрепляются «в воздухе» как статичные объекты, на них игрок может прыгать
Монеты ничего не дают, просто исчезают при столкновении с игроком
Открываем main.h, стираем то, что там было написано, и пишем:
Здесь у нас подключены level.h и Box2D.h. iostream нужен для вывода в консоль, random — для генерации направления движения врага.
Далее идут игрок и векторы, каждому врагу, монетке, игроку полагается свой Object и b2Body (тело в Box2D).
Внимание — блокам этого не полагается, так как они взаимодействуют с игроком только на уровне физики Box2D, а не в игровой логике.
srand(time(NULL)) нужен для рандома.
Загружаем карту, создаем b2World, передавая ей гравитацию. Кстати, гравитация может исходить из какого угодно направления, и гравитация из (0,10) действует сильнее (0,1). Потом мы берем нужный нам размер тайлов
Далее создаем тела блоков:
Блоки — статические тела, они не имеют массы и висят в воздухе:
Тут мы устанавливаем позицию блоков. Дело в том, что если просто указать позицию такую же, как у объекта, нас будет ждать коварная ошибка.
Создаем тело блока в world. Далее мы с телом не работаем (в смысле, нигде не храним):
Каждому телу принадлежит несколько shape — фигур. Я не буду подробно разбирать эту тему, так как блокам (и остальным телам) хватает всего-то одного прямоугольника.
Связываем фигуру с телом.
Затем мы делаем то же самое с врагами, монетами и игроком, за небольшими различиями:
Означает, что тело не может вращаться.
Все тела созданы, осталось инициализировать графику!
Хорошо понятный код, создает окно с указанным размером и заголовком:
Тут мы создаем вид (View) для окна.
Зачем это надо? Для того, чтобы придать игре пиксельный стиль, мы умножаем размер экрана на 2 с использованием sf::View и все картинки рисуются в 2 раза выше и шире.
Окно закрывается по нажатию на красный крестик. Такой код был ранее:
Тут уже интереснее! Мы добавляем скорость игроку по нажатию клавиш WAD:
Тут мы обновляем физический мир Box2D. Первый аргумент принимает частоту обновления мира (раз в 1/60 секунд), а также количество velocityIterations и positionIterations. Чем выше значение последних двух аргументов, тем реальнее получается физика игры. Так как у нас нету никаких сложных фигур, как в AngryBirds, а только прямоугольники, то нам достаточно по разу.
Здесь мы обрабатываем столкновение игрока с другими телами:
Обработка столкновения с монетами.
Если какая монета столкнулась с игроком, она просто уничтожается и стирается из векторов:
Если враг сталкивается с игроком, проверяется, выше игрок врага или нет. Если игрок выше врага, то он стирается, а игрок подскакивает вверх.
Если иначе, то игрок отскакивает от врага:
Игрок движется направо или налево в соотвествии с его текущим положением относительно врага.
Если скорость врага равна 0, то ему скорость придается вновь — он движется либо направо, либо налево. Визуально это выглядит как движение рывками.
Работа с графикой. Берем позицию игрока, изменяем центр вида и используем наш вид
Устанавливаем спрайтам игрока, монет и врагов позиции, полученные из b2Body:
Очищаем окна, рисуем тайлы карты, потом игрока, монеты и врагов, после чего представляем окно.
Движок используется в двумерных компьютерных играх, среди которых Angry Birds, Limbo, Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Transformice, Happy Wheels, Color Infection, Shovel Knight, King of Thieves.
WPF и Viewport3D
Для отрисовки мира я решил по определенным причинам взять WPF, конечно отрисовывать можно на чем угодно, хоть на обычном Grphics и PictureBox, но это не желательно т.к. Graphics выводит графику через ЦП и будет отнимать много процессорного времени.
Напишем небольшое окружение для работы с графикой. В дефолтное окно проекта добавим следующий XAML:
ClipToBounds — говорит то что невидимые грани будут отсекаться, хотя здесь это не пригодится т.к. будет 2D проекция, я все равно это включу.
После устанавливается перспективная камера. FarPlaneDistance — максимальное расстояние которое захватывает камера, NearPlaneDistance — минимальное расстояние, и дальше позиция, куда смотрит камера и как она смотрит. Дальше мы создаем элемент Model3DGroup в который мы будем кидать геометрию через его имя «models», и добавляем в него 3 освещения.
Ну вот, с XAML разобрались, теперь можно начать писать класс для создания геометрии:
Этот класс создает квадрат и отрисовывает на нем текстуру. Думаю по названиям методов понятно какой метод за что отвечает. Для рисования геометрических фигур я буду использовать текстуру и накладывать ее на квадрат с альфа каналом.
Box2D — Hello world
Начнем с самого основного, с создания мира. Мир в Box2D имеет определенные параметры, это границы(квадрат) в которых обрабатываются физические тела.
В параметрах мира так же есть вектор гравитации и возможность объектов «засыпать» если их инерция равно нулю, это хорошо подходит для экономии ресурсов процессора. Пораметров конечно больше, но нам пока нужны только эти. Создадим класс Physics и добавим следующий конструктор:
Дальше необходимо написать методы для добавления различных физических тел, я добавлю 3 метода создающих круг и квадрат и многоугольник. Сразу добавляю в класс Physics две константы:
Описываю метод для создания квадратного тела:
И для создания круглого тела:
Я тут этого делать не буду, но можно создавать многоугольники примерно таким способом:
Очень важно рисовать выпуклые многоугольники чтоб коллизии обрабатывались корректно.
Тут все достаточно просто если вы знаете английский. Дальше нужно создать метод для обработки логики:
Помните тот model в методах AddCircle и AddBox который мы запихивали в body.SetUserDate()? Так вот, тут мы его достаем MyModel3D model = (MyModel3D)list.GetUserData(); и вертим как говорит нам Box2D.
Теперь это все можно затестить, вот мой код в дефолтном классе окна:
Да, я забыл упомянуть о том что я добавил в класс Physics метод px.SetModelsGroup(); для удобства передачи ссылки на объект Model3DGroup. Если вы используете какой нибудь другой графический движок, то вы можете обойтись и без этого.
Вы наверное заметили что значения координат кубиков слишком маленькие, ведь мы привыкли работать с пикселем. Это связано с тем что в Box2D все метрики расчитываются в метрах, по этому если вы хотите чтобы все расчитывалось в пикселях, вам нужно пиксели делить на 30. Например bDef.SetPosition(x / 30.0f, y / 30.0f); и все будет гуд.
Уже с этими знаниями можно успешно написать простенькую игру, но есть у Box2D еще несколько фишек, например отслеживание столконовений. Например чтобы знать что пуля попала по персонажу, или для моделирования разного грунта и т.д. Создадим класс Solver:
Прошу заметить что мы наследуем класс от ContactListener. Используется в Box2D для отслеживания коллизий. Дальше мы просто передадим объект этого класса объекту world в классе Physics, для этого напишем функцию:
Создадим объект и передадим его:
В классе Solver есть несколько колбэков которые вызываются по очереди в соответствии с названиями, повесим один на прослушивание:
Так же вы можите прикрутить к классу MyModel3D свойство типа string name, задавать ему значение и уже в коллбэке OnAdd проверять конкретно какое тело с каким телом столкнулось.
Так же Box2D позволяет делать связи между телами. Они могут быть разных типов, рассмотрим пару:
Это простое жесткое соединение тела b1 и b2 в точке x, y. Вы можете посмотреть свойства у класса RevoluteJointDef. Там можно сделать так чтобы объект вращался, подходит для создания машины, или мельницы. Идем дальше:
Это более интересная связь, она эмитирует пружину, значение hz — напряженность пружины. С таким соединением хорошо делать подвеску для машины, или катапульту.
Заключение
Это далеко не все что может Box2D. Что самое классное в этом движке, так это то что он бесплатный и на него есть порт под любую платформу, и синтаксис практически не отличается. Кстати я пробовал его использовать в Xamarin на 4.1.1 андроиде, сборщик мусора постоянно тормозил приложения из-за того что Box2D плодил много мусора. Говорят начиная с пятого андроида благодоря ART все не так плохо, хотя я не проверял.
как Подключить box2d к VS 2012, искал в гугле там говорится нужно исходники скаченные с офф сайта скомпилировать Cmake. ну я попробывал, вышло но lib файлов так и не появилось. Просветите что ввобще делать то
как блин мне сюда вставить изображение. блокирует урл
s018 . radikal . ru / i520 / 1408 / 70 / 6fc64c842d62 . png
Добавлено через 51 минуту
*Собирал проект не было ошибок, Скомпилировал ошибка
unable start program ну тут путь. \Debug\ALL_BUILD
папка дебаг там пустая
Добавлено через 17 минут
отказано в доступе)
Добавлено через 43 минуты
ау есть кто живой?
Добавлено через 1 час 58 минут
Все решил, взял предыдущую версию box2d и скомпилировалась.
Еще раз спасибо за помощь)) 2рой раз подряд удивляюсь как только умеют люди не помогать)
Добавлено через 2 часа 11 минут
хотя нет не помогло
Добавлено через 3 минуты
либ появился но куда не ложи его ли в визуал прямо к либам ли то еще куда ему всеравно невидит его
Добавлено через 32 минуты
as 3 + box2d или как установить
Здраствуйте дорогие форумчане Как установить box2dflash? Пробывал import . всех.
Box2d. Не запускается файл box2d.lib
Скачал с официального сайта исходники box2d. Открыл решение из c:\Users\Ytsukene\Documents\Visual.
Как установить и сменить пароль базы Access через проект Delphi?
Народ подскажите, как установить и сменить пароль базы Access через проект Delphi
Intellij IDEA 14 + spring MVC, как правильно установить готовый проект на сервер?
Приветствую! Не могу нагуглить ответ на вопрос, заданный в теме топика. Т.к. почти закончил.
Box2D.lib
Да я ее даже в сам визуал кинул
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib
и в линкер добавил.
Решение
Откройте в VS Box2D_v2.3.0\Box2D\Build\vs2012\Box2D.sln
Пробуйте собирать (F7).
Если все нормально, то в Box2D_v2.3.0\Box2D\Build\vs2012\bin\[Debug|Release] будут лежать библиотечные файлы и тестовые программы HelloWorld.exe и Testbed.exe
Пробуем создать свой проект:
В VS пустое консольное приложение, добавляем новый исходный файл, тупо копируем в него текст HelloWorld.cpp из Box2D, создаем в папке проекта папку contrib, в ней include и lib, в include копируем Box2D_v2.3.0\Box2D\Box2D в lib папки Debug, Release из Box2D_v2.3.0\Box2D\Build\vs2012\bin. Уже почищенная от ненужных файлов структура каталогов проекта:
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
F7 -- все компилируется, все работает.
Откройте в VS Box2D_v2.3.0\Box2D\Build\vs2012\Box2D.sln
Пробуйте собирать (F7).
Если все нормально, то в Box2D_v2.3.0\Box2D\Build\vs2012\bin\[Debug|Release] будут лежать библиотечные файлы и тестовые программы HelloWorld.exe и Testbed.exe
Пробуем создать свой проект:
В VS пустое консольное приложение, добавляем новый исходный файл, тупо копируем в него текст HelloWorld.cpp из Box2D, создаем в папке проекта папку contrib, в ней include и lib, в include копируем Box2D_v2.3.0\Box2D\Box2D в lib папки Debug, Release из Box2D_v2.3.0\Box2D\Build\vs2012\bin. Уже почищенная от ненужных файлов структура каталогов проекта:
Кликните здесь для просмотра всего текста
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
F7 -- все компилируется, все работает.
Архив с проектом: testBox2D.zip
В свойствах проекта прописываем нужные зависимости:
C++/General/Additional Include Directories: contrib/include
Linker/General/Additional Library Directories: contrib/lib/release или contrib/lib/debug
Linker/Input/Additional Dependencies: box2d.lib
В ответе есть ссылка на архив с готовым рабочим проектом.
Скачайте, откройте в VS, посмотрите в каких папках и что лежит в самой папке проекта.
Разберитесь и сделайте аналогично.
Вы там какую-то фигню понаписали в опции "компоновщик - дополнительные каталоги библиотек".
скачал проект. попробовал открыть, мне написало что старая версия проекта(у меня на компе 2013 а у вас 11).
у меня автоматом перевело на мою версию. попробовал компилить пишет:
1>box2d.lib(b2PolygonShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Body.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2World.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Fixture.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2BroadPhase.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ContactManager.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Island.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Joint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PulleyJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2Contact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WorldCallbacks.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ContactSolver.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2DistanceJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WheelJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2MouseJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2RevoluteJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PrismaticJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2GearJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2WeldJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2FrictionJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2RopeJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2MotorJoint.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2CircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PolygonAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2PolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeAndPolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainAndCircleContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainAndPolygonContact.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2ChainShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>box2d.lib(b2EdgeShape.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1700" не соответствует значению "1800" в main.obj
1>C:\Users\Administrator\Documents\Visual Studio 2013\Projects\testBox2D\testBox2D\Debug\testBox2D.exe : fatal error LNK1319: обнаружено несоответствий: 31
Читайте также: