【问题标题】:CLion & SDL WinMain@16 errorCLion & SDL WinMain@16 错误
【发布时间】:2015-10-24 17:42:26
【问题描述】:

我有一个问题。尝试使用库 SDL 1.2 时,我不断收到 WinMain@16 错误。 (我知道它已经过时了,但我暂时可以使用它)。当我使用 CMakeList.txt 取消链接 CLion 中的库时,一切都编译得很好

我也读过需要添加以下标志的地方,-lmingw32 -lSDLmain -lSDL -mwindows,但我不知道将它们添加到哪里。将它们添加到 CMAKE_CXX_FLAGS 时,出现 Windows 找不到的错误。

这是我的代码。

CMakeList.txt

cmake_minimum_required(VERSION 3.3)
project(test2)

set(SDL_PATH "C:/SDK/SDL-1.2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

find_package(SDL REQUIRED)

include_directories(${SDL_INCLUDE_DIR})

set(SOURCE_FILES main.cpp)
add_executable(test2 ${SOURCE_FILES})
target_link_libraries(test2 ${SDL_LIBRARY})

我也有链接到的内置缓存

SDL_LIBRARY = SDL-1.2/lib

SDL_INCLUDE_DIR = SDL-1.2/包含

SDLMAIN_LIBRARY SDL-1.2/lib/libSDLmain.a

我的 C++ 代码 atm

#include <iostream>
#include "SDL/SDL.h"

using namespace std;

int main() {
    SDL_Rect test = {0, 0, 0, 0};

    return 0;
}

【问题讨论】:

  • 试试add_executable(test2 WIN32 ${SOURCE_FILES})
  • 似乎没有任何改变。

标签: c++ cmake sdl


【解决方案1】:

1) 确保您的主要方法是以下形式:

int main(int argc, char* argv[])
{

}

注意添加的参数

2) 你使用target_link_libraries(target lib)链接你的静态库

所以你必须像这样链接:

target_link_libraries(test2 SDL SDLmain)

您可以从此处下载预构建的开发库

https://www.libsdl.org/download-1.2.php

【讨论】:

  • 这让我进入了一个新领域,我现在遇到的问题是它找不到 -lSDL 和 -lSDLmain
猜你喜欢
  • 1970-01-01
  • 2015-11-27
  • 2013-06-07
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多