Я смог получить урок № 1 скомпилировать нормально. Но я не могу получить 2-й Скомпилировать.
Когда вы делаете новый -> Проект, может одна из этих настроек мешает? Уверен, я сделал пустой проект, иначе утешил.
В чем дело?
ошибка компиляции:
Error 1 error LNK2019: unresolved external symbol _WinMain@16 referenced in function
___tmainCRTStartup C:\...\02-videomode-iterate\MSVCRTD.lib(crtexew.obj) 02-videomode-iterate
Error 2 error LNK1120: 1 unresolved externals C:\...\Debug\02-videomode-iterate.exe 02-videomode-iterate
весь источник:
#include <SFML/Window.hpp>
int main()
{
sf::Window App(sf::VideoMode(800, 600, 32), "SFML-tut: 02");
bool Running = true;
while (Running)
{
App.Display();
}
return EXIT_SUCCESS;
}
Настройки проекта:
include dir, lib: dir установлены правильно.
c ++ -> препроцессор -> определения препроцессора:
SFML_DYNAMIC
компоновщик -> ввод
пытался:
sfml-window.lib
а такжеsfml-window-d.lib
(Кажется, Visual Studio всегда использует режим отладки при запуске? Но урок № 1 работал только тогда, когда я не использовал -d версию.
подсистема:
/ SUBSYSTEM: WINDOWS
Когда вы устанавливаете /SUBSYSTEM:WINDOWS
флаг, компоновщик будет искать WinMain
функция, а не обычная main
, У вас есть два варианта:
/SUBSYSTEM:CONSOLE
, Вы получите раздражающее (или, возможно, полезное) окно консоли, от которого вы можете избавиться FreeConsole
,+ Изменить main
в WinMain
со следующей подписью:
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
);
Если вам не нужен доступ argc
а также argv
Это изменение не должно вызывать особых проблем.
Изменить: Возможно, это тоже стоит посмотреть (скопировано из второго урока):
В операционных системах Windows вы, возможно, создали «Windows
Приложение «проект, особенно если не хотите, чтобы консоль появилась.
В этом случае, чтобы избежать замены основной на WinMain, вы можете связать с
Статическая библиотека SFML_Main и ведение стандартной и переносимой основной записи
точка.
Итак, я полагаю, что сводится к добавлению sfml-main.lib
(или аналогичный) к списку библиотек для связи.
Других решений пока нет …