CMake 하면 빌드가 편하다길래 한번 써보려 하는데 자꾸 빌드를 실패해요
# main.cpp
#define SDL_MAIN_USE_CALLBACKS 1
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) {
return SDL_APP_CONTINUE;
}
SDL_AppResult SDL_AppEvent(void **appstate, SDL_Event *event) {
switch (event->type) {
case SDL_EVENT_QUIT:
return SDL_APP_SUCCESS;
}
return SDL_APP_CONTINUE;
}
SDL_AppResult SDL_AppIterate(void **appstate) {
return SDL_APP_CONTINUE;
}
void SDL_AppQuit(void **appstate, SDL_AppResult result) {
SDL_Quit();
}
# CMakeLists.txt
cmake_minimum_required(VERSION 3.28)
project(NewFolder LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
# set(CMAKE_CXX_STANDARD_REQUIRED ON)
file(GLOB_RECURSE SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
file(GLOB_RECURSE IXX CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/ixx/*.ixx")
# cpps
add_executable(NewFolder ${SRC})
# ixxs
target_sources(NewFolder
PUBLIC
FILE_SET CXX_MODULES FILES
${IXX}
)
# includes
target_include_directories(NewFolder PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/include")
# libs
target_link_directories(NewFolder PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/lib")
target_link_libraries(NewFolder PRIVATE
SDL3)
# 터미널 로그
[build] main.obj : error LNK2019: SDL_AppIterateSDL_main 함수에서 참조되는 확인할 수 없는 외부 기호 [C:\Users\defaultuser0\Desktop\New Folder\build\NewFolder.vcxproj]
[build] 정의되었으며 잠재적으로 일치할 수 있는 기호에 대한 힌트:
[build] "enum SDL_AppResult __cdecl SDL_AppIterate(void * *)" (?SDL_AppIterate@@YA?AW4SDL_AppResult@@PEAPEAX@Z)
이렇게 뜨면서 오류가 나요. extern "C" 로 감싸도 오류 나고 뭐가 뭔지 참
어떻게 해결 해야할까요?
내가 함수를 잘못 작성 했었구나