Получение ошибки LNK2019: неразрешенный внешний символ при компиляции кода SDL2 в Windows с использованием MSVC - PullRequest
0 голосов
/ 27 апреля 2020

Полный вывод ошибок:

SDL2main.lib(SDL_windows_main.obj) : error LNK2019: unresolved external symbol __imp_CommandLineToArgvW referenced in function main_getcmdline

Мои параметры компилятора:

cl -D WINDOWS -nologo -W4 -WX -wd4100 -Fe"output_file.exe" input_file.c SDL2.lib SDL2main.lib -I ./SDL2-2.0.12/include -link -LIBPATH:./SDL2-2.0.12/lib/x64 -SUBSYSTEM:CONSOLE

Мой input_file.c заголовок и основная функция:

#ifdef LINUX
#include <SDL2/SDL.h> /* Comes with stdio.h and stdlib.h */
#elif WINDOWS
#include <stdio.h>
#include "SDL.h"
#endif

int main(int argc, char* argv[])                                                                              {
  if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_TIMER) != 0)
  {
    fprintf(stderr, "Failed to initialize SDL: %s\n", SDL_GetError());
    return -1;
  }

. . .

SDL Папка разработки, используемая в аргументах командной строки - это zip-файл библиотек разработки, загруженный с libsdl.org

Почему я получаю эту ошибку?

1 Ответ

1 голос
/ 27 апреля 2020

вам также нужно использовать библиотеку с именем "shell32.lib" cl -D WINDOWS -nologo -W4 -WX -wd4100 -Fe"output_file.exe" input_file.c shell32.lib SDL2.lib SDL2main.lib -I ./SDL2-2.0.12/include -link -LIBPATH:./SDL2-2.0.12/lib/x64 -SUBSYSTEM:CONSOLE

...