i have simple c++/sdl project in main.cpp:
#include <stdio.h>
#include <SDL2/SDL.h>
int main() {
printf("Initializing SDL.\n");
/* Initialize defaults, Video and Audio */
if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) {
printf("Could not initialize SDL: %s.\n", SDL_GetError());
exit(-1);
}
printf("SDL initialized.\n");
printf("Quiting SDL.\n");
/* Shutdown all subsystems */
SDL_Quit();
printf("Quiting....\n");
exit(0);
}
and in the cmakelist.txt:
cmake_minimum_required(VERSION 3.0.0)
project(sdl2test VERSION 0.1.0)
include(CTest)
enable_testing()
add_executable(sdl2test main.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
SET(SDL2_DIR C:/SDL2)
INCLUDE_DIRECTORIES(${SDL2_DIR}/include)
LINK_DIRECTORIES(${SDL2_DIR}/lib)
include(CPack)
but when go build it throws me:
[main] Building folder: vsc.cpp.SDL2
[build] Starting build
[proc] Executing command: D:\coding\IDE\cmake-3.17.0-win64-x64\cmake-3.17.0-win64-x64\bin\cmake.EXE --build d:/coding/!!!!projects/vsc.cpp.SDL2/build --config Debug --target all -- -j 6
[build] -- Configuring done
[build] -- Generating done
[build] -- Build files have been written to: D:/coding/!!!!projects/vsc.cpp.SDL2/build
[build] [ 50%] Building CXX object CMakeFiles/sdl2test.dir/main.cpp.obj
[build] [100%] Linking CXX executable sdl2test.exe
[build] CMakeFiles\sdl2test.dir/objects.a(main.cpp.obj): In function `Z8SDL_mainv':
[build] D:/coding/!!!!projects/vsc.cpp.SDL2/main.cpp:8: undefined reference to `SDL_Init'
[build] D:/coding/!!!!projects/vsc.cpp.SDL2/main.cpp:9: undefined reference to `SDL_GetError'
[build] D:/coding/!!!!projects/vsc.cpp.SDL2/main.cpp:17: undefined reference to `SDL_Quit'
[build] C:/Qt/Qt5.8.0/Tools/mingw530_32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
[build] collect2.exe: error: ld returned 1 exit status
[build] CMakeFiles\sdl2test.dir\build.make:102: recipe for target 'sdl2test.exe' failed
[build] mingw32-make.exe[2]: *** [sdl2test.exe] Error 1
[build] CMakeFiles\Makefile2:875: recipe for target 'CMakeFiles/sdl2test.dir/all' failed
[build] mingw32-make.exe[1]: *** [CMakeFiles/sdl2test.dir/all] Error 2
[build] Makefile:132: recipe for target 'all' failed
[build] mingw32-make.exe: *** [all] Error 2
[build] Build finished with exit code 2
i have a working mingw32 compiler form qtcreator, and one from code blocks, updated cmake as well as the extencions for vscode