sfml ошибки статического связывания в visualStudio 2017 - PullRequest
0 голосов
/ 03 февраля 2019

У меня возникли проблемы с программированием игры.Я бы не сказал, что я новичок в программировании, но объединение библиотек - это для меня новость.И вот в этом моя проблема: когда я начал программировать игру sfml (и я начал использовать файлы .h и .cpp, используя 64-битную версию sfml 2.5.1), я заметил, что не могу использовать их и аналогично этим функциям:

.setColor(Color::Black) / .setFillColor(Color::color)

Я получаю сообщение об ошибке:

public: __thiscall sf :: Color :: Color (unsigned char, unsigned char, unsigned char, unsigned char) "(?? 0Color @ sf @@ QAE @ EEEE @ Z) уже определен в sfml-graphics-d.lib (sfml-graphics-d-2.dll)

, затем я обнаружил, что должен связать статическийбиблиотеки для этого, и я сделал это, но я получил новую ошибку, говорящую:

тип компьютера модуля 'x64' конфликтует с типом машины назначения 'X86'

Я, возможно, исправил это, изменив «целевую машину на« не установлено »», а затем появляются следующие 237 ошибок, говорящих:

обнаружено несоответствие для «RuntimeLibrary»: значение «MDd_DynamicDebug» не совпадаетзначение 'MTd_StaticDebug'

public: __cdecl std :: _ Lockit :: _ Lockit (int) "(?? 0_Lockit @ std @@ QEAA @ H @ Z) уже определеноn libcpmtd.lib (xlock.obj)

private: статический класс std :: locale :: _ Locimp * __cdecl std :: locale :: _ Init (bool) "(? _Init @ locale @ std @@ CAPEAV_Locimp @12 @ _N @ Z) уже определено в libcpmtd.lib (locale0.obj)

неразрешенный внешний символ __imp_cosf

неразрешенный внешний символ __imp_sinf

и многое другоеиз них ... в основном, почти каждая строка имеет ошибку.

Я нашел возможное решение изменить Runtime Library на / MTd, но, похоже, это не работает, потому что я получаю те же 237 ошибок.

В чем может быть проблема и как я могу это исправить?

Заранее спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

Как уже упоминали другие, вы должны нацеливаться на x86, учитывая, что ваши двоичные файлы делают это.

Что касается множественных определений, убедитесь, что вы не компилируете свои .lib-файлы, а только заголовки SFML.

Не включайте нигде библиотеки DLL и убедитесь, что вы правильно настраиваете входные данные для компоновщика.

На веб-сайте SFML имеется очень подробное руководство по началу работы если вы будете следовать ей должным образом, ваша ссылка будет работать.

Я советую вам начать все сначала и следовать инструкциям шаг за шагом.Кроме того, обязательно прочитайте все (пропуски небольших частей учебника - источник всего зла.)

...