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

Я слежу за документацией Steamworks до Т, но сталкиваюсь с ошибками компоновщика.

Я знаю, что API установлен правильно и правильно импортирован, потому что я могу включить любой файл заголовка Steam, и он найдет его правильно, а когда я запускаю свою игру, появляется оверлей Steam.

Однако недавно я попытался получить доступ к общественной части API, в частности, чтобы найти друзей пользователя. Согласно документации, для этого нужно использовать символ SteamFriends ().

Я включил steam_api.h, steam_gameserver.h, isteamfriends.h и isteamutils.h в заголовок моего объекта доступа, а также добавил steam_api.dll и steam_api.lib в свой проект, но без кубиков.

Каждый раз я получаю следующую ошибку:

ошибка LNK2019: неразрешенный внешний символ _imp_SteamFriends

Кто-нибудь успешно это сделал?


Дополнительная информация:

  • Версия Unreal Engine: 4.7.5
  • Версия Steam API: 1.32
  • Платформа: ПК
  • IDE: Visual Studio 2013 Professional

person David    schedule 20.04.2015    source источник


Ответы (1)


После поиска в Интернете любой документации я обнаружил проблему.

Epic ожидает, что вы свяжете все библиотеки и выполните все необходимые операции вручную.

Это означало, что мне пришлось добавить каталог, в котором были сохранены все файлы steam_api.lib, steam_api64.lib и т. Д., В конфигурацию, а затем мне нужно было связать его в фактических файлах, используя

#pragma comment(lib, "win64/steam_api64")

Так что на стороне примечания, им нужна помощь с их документацией; понять это было труднее, чем следовало бы.

person David    schedule 20.04.2015
comment
Необходимость «вручную» включать все библиотеки очень типична для разработки на C и C ++. Обычно это влечет за собой два шага, которые вы придумали: добавление каталогов include и библиотек в вашу конфигурацию и указание компоновщику, какие библиотеки включить. - person MicroVirus; 21.04.2015
comment
Но ты не понимаешь. В руководстве Epic по использованию Steam API ничего не говорится о добавлении чего-либо в ваш проект. Вы просто перемещаете файлы в папки движка, а затем говорите своему проекту добавить модуль зависимости. Они никогда ничего не говорили о необходимости редактировать пути к библиотекам или связывать библиотеки. - person David; 21.04.2015
comment
О, я понимаю; Я был там. Я просто заметил, что это конкретный пример общего с C и C ++ и сторонними библиотеками: если вы используете библиотеку, вам нужно явно включить ее, и если у кого-то нет предварительно созданного проекта / makefile /так далее. для вас это ваша работа - отслеживать это. - person MicroVirus; 21.04.2015