неопределенная ссылка на `SDL_Init' (неопределенная ссылка на `WinMain@16' collect2.exe: ошибка: ld вернул 1 статус выхода)

Я пытаюсь изучить и использовать SDL в своем проекте. сначала у меня были некоторые проблемы, когда мой ide не мог его найти. Я использую clion ide и mingw. Я добавил sdl в mingw (C:\MinGW\include\SDL2), и теперь он работает. Но все равно не могу скомпилировать. любая идея об этой ошибке?

Linking C executable Hello_World.exe
CMakeFiles\Hello_World.dir/objects.a(main.c.obj): In function `SDL_main':
C:/Users/Deve/ClionProjects/Hello World/main.c:5: undefined reference to `SDL_Init'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libmingw32.a(main.o):(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

это мой единственный код на данный момент

#include "SDL2/SDL.h"

int main(int argc, char *argv[]){
    SDL_Init(SDL_INIT_VIDEO);
    return 0;

}

и я не могу заставить его работать.

вот мой cmake

cmake_minimum_required(VERSION 3.2)
project(Hello_World)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
set(SOURCE_FILES main.c)

add_executable(Hello_World ${SOURCE_FILES})

моя система виндовс 8.1 64бит


person user0001    schedule 07.06.2015    source источник


Ответы (2)


Вы включили .a и/или .lib? Если вы не включите это, ваша программа никогда не найдет функции, которые вы хотите использовать.

person zonn    schedule 07.06.2015

Вы должны включить флаг -lSDL в свой файл cmake:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -lSDL")
person Blex    schedule 07.06.2015