Войти
ПрограммированиеФорумФизика

Компиляция Bullet Physics

Страницы: 1 2 3 Следующая »
#0
3:13, 16 янв. 2018

Всем привет!
Возник такой вопрос: я обновил библиотеку FreeType и мой проект перестал компилироваться как MT и его пришлось вернуть к варианту компиляции MD.
Но Bullet в проекте не компилируется как MD и отдельно как динамическая библиотека тоже.
Кто-нибудь решал этот вопрос? Или может подскажете нормальную бесплатную библиотеку для обработки физики? PhysX даже не рассматривается.


#1
4:32, 16 янв. 2018

Iron Man
> я обновил библиотеку FreeType и мой проект перестал компилироваться как MT
попробуй исправить ошибку

#2
6:08, 16 янв. 2018

Не уж-то Bullet никак не лечится? А ведь в настройках CMake есть опция RUNTIME_LIBRARY_DLL, с которой настройки всех библиотек меняются на MD, но при компиляции вылазит хренова гора ошибок линковки.
А в том, что FreeType перестал поддерживать опцию MT, я не вижу ничего предосудительного, все проекты компилируются по умолчанию с опцией MD, а менять настройку проекта только из-за одного Bullet уже по меньшей мере стремновато.
Неужели больше нет нормальных SDK для обработки физики?

#3
6:24, 16 янв. 2018

Iron Man
> Неужели больше нет нормальных SDK для обработки физики?
неужели ты думаешь, что sdk перестаёт быть "нормальным", если ты его не смог скомпилировать?

#4
7:32, 16 янв. 2018

Suslik
В интернете рекомендуют использовать MT, особенно для мультипоточных приложений, так что действительно Bullet можно не трогать.
А как мне тогда перебить под него FreeType? Я так-то не силён исправлять такие вещи :)

#5
9:23, 16 янв. 2018

Iron Man
парень, все телепаты всё ещё на праздниках. на что ты надеешься, даже не запостив коды ошибок?

#6
9:54, 16 янв. 2018

Suslik
> парень, все телепаты всё ещё на праздниках. на что ты надеешься, даже не запостив коды ошибок?

LNK2001  unresolved external symbol __imp_FT_Load_Glyph
LNK2001  unresolved external symbol __imp_FT_Get_Char_Index
LNK2001  unresolved external symbol __imp_FT_Render_Glyph
LNK2001  unresolved external symbol __imp_FT_Init_FreeType
LNK2001  unresolved external symbol __imp_FT_New_Face
LNK2001  unresolved external symbol __imp_FT_Set_Pixel_Sizes
LNK2001  unresolved external symbol __imp_FT_Done_Face
LNK2001  unresolved external symbol __imp_FT_Done_FreeType

Собственно несовместимость с lib-файлом при компиляции с опцией MT, даже если сам FreeType предварительно компилировать с этой же опцией.
#7
11:21, 16 янв. 2018

Iron Man
Это ведь не конфликт имён и там не подходящий формат какой-нибудь.
Скорее всего линковщику вообще никакой библиотеки не подается.
Он тебе говорит что во всех видимы ему объектых файлов перечисленные символы (точки входа в ф-ции)
не обнаружены.

#8
11:33, 16 янв. 2018

TheLightWay
lib-файл присутствует, но проект корректно компилируется только с опцией MD, врубаю MT и вылазят ошибки, даже если этот lib я предварительно компилирую с опцией MT.

#9
11:42, 16 янв. 2018

Iron Man
Все части solution'а должны быть либо dll либо static. Если их смиксовать может и не такое вылезти, лень писать почему.

#10
12:22, 16 янв. 2018

TheLightWay
> Все части solution'а должны быть либо dll либо static
Это и ежу понятно, но вся проблема в том, что Bullet можно компилировать только как MT, а FreeType только как MD, всем же остальным SDK в проекте по барабану, работают и так, и так.
Вот и не приложу ума, как мне эти две SDK теперь скомпилировать в одном проекте.

#11
16:01, 16 янв. 2018

omg
1. Качаем Bullet в сырцах с офф. репозитория, распаковываем;
2. Качаем CMake с гуёй(мы же под винду, собираем, ога), устанавливаем, запускаем;
3. Указываем директорию с корневым CMakeLists;
4. Указываем директорию, где будет лежать вся сгенерированная требуха;
5. Жмём Configure, ждём;
6. Ставим галку напротив USE_MSVC_RUNTIME_LIBRARY_DLL, получая таким образом вожделенный /MD;
7. Жмём Configure ещё раз(а может и не надо, хз), жмём Generete, ждём;
8. Дождались. Открываем файлы созданного солюшна в студии и собираем Bullet;
9. профит.

#12
16:29, 16 янв. 2018

Bowman
Именно так и делал, иначе б глупых вопросов не задавал, но не компилируется, вываливается куча ошибок.
Нормально компилируется только в том случает, если чекбокс USE_MSVC_RUNTIME_LIBRARY_DLL не отмечать.
Если в CMake отключить чекбоксы с примерами и текстами, компилируется с USE_MSVC_RUNTIME_LIBRARY_DLL, но при компиляции проекта всё равно вываливаются ошибки с руганью на MT и MD.

#13
17:20, 16 янв. 2018

Iron Man
> Именно так и делал, иначе б глупых вопросов не задавал, но не компилируется,
> вываливается куча ошибок.
Зачем задавать глупый вопрос, когда можно умный? (вывалить под спойлер конкретные ошибки, которые мешают сборке Bullet'а)

#14
21:52, 16 янв. 2018
Или может подскажете нормальную бесплатную библиотеку для обработки физики?

Нормальное такое оскорбление для пользователей данной библиотеки. Это и есть более менее самая нормальная библиотека по физики.

Я на ней работаю уже не один год, не разу не подводила, но это вопрос прямоты рук.

Там дело в том, что каждому проекту отдельно надо выставлять атрибуты, но надо заметить, что там некоторые библиотеки зависят и от других, то есть второстепенным библиотекам их тоже надо будет выставить.
Также в интернете не только в google но а также в youtube имеется куча материала по этому поводу.

А вообще это делается не дольше пяти минут. Как то нехорошо даже.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумФизика

Тема в архиве.