Используйте main вместо wmain с VS и Cmake

У меня есть следующий сценарий CMakeLists.txt:

# CMake entry point
cmake_minimum_required (VERSION 3.0)

#project name
project (PoorEngine)

#find OpenGL and include it, fail if OpenGl can't be found
find_package(OpenGL REQUIRED)

#create a variable and populate it with source files
set(
    SOURCES
    ${PROJECT_SOURCE_DIR}/Source/main.cpp
)

#create a variable and populate it with headers directories
set(
    HEADERS_DIR
    ${PROJECT_SOURCE_DIR}/ThirdParties/SDL/include
)

#explicit dependency libs
set(
    LIBRARIES_DIR
    ${PROJECT_SOURCE_DIR}/ThirdParties/SDL/Win32/
)

# Add an executable with the above sources
add_executable(${PROJECT_NAME} ${SOURCES}) 

#include headers directories in the target
target_include_directories(${PROJECT_NAME} PRIVATE ${HEADERS_DIR})

#add explicit dependency to SDL2
find_library(SDL_LIB NAMES SDL2 PATHS ${LIBRARIES_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL_LIB})

add_custom_command(
    TARGET ${PROJECT_NAME} 
    POST_BUILD
    COMMAND 
        ${CMAKE_COMMAND} -E copy_if_different                   # which executes "cmake - E copy_if_different..."
        ${PROJECT_SOURCE_DIR}/ThirdParties/SDL/x64/SDL2.dll      # <--this is in-file
        $<TARGET_FILE_DIR:${PROJECT_NAME}>
)

И мой main.cpp выглядит так:

#include <SDL.h>

int main()
{
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Delay(1000);

    SDL_Quit();
    return 0;
}

Это вызовет ошибку ссылки:

Error LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) Severity Code Description Project File Line Error LNK1120 1 unresolved externals

Если бы я использовал wmain() вместо main(), все было бы хорошо, но я бы хотел придерживаться main(). Я чувствую, что мне не хватает некоторых настроек, пожалуйста, помогите мне.

0 ответов

Другие вопросы по тегам