我只是想学习如何在克利恩( Jetbrains )中使用SDL,我在一篇文章中找到了一个编辑我的CMakeLists.txt的答案,我做到了!!但没起作用。
我可以使用库,但我不能编译它,在图像中,您可以看到输出控制台中的错误。
有人能帮我配置一下吗?
这是我的CMakeLists.txt
cmake_minimum_required(VERSION 3.6)
project(OpenGLTest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32")
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/lib)
set(SOURCE_FILES main.cpp)
add_executable(OpenGLTest ${SOURCE_FILES})
target_link_libraries(OpenGLTest libSDL2main libSDL2 libSDL2_test)这是我的"main.cpp“
#include <iostream>
#include <SDL.h>
int main() {
SDL_Init(SDL_INIT_EVERYTHING);
std::cout << "Hello, World!" << std::endl;
return 0;
}PS:这是我写的代码,只是为了测试编译。
这是Clion控制台中的错误。

发布于 2017-02-24 14:59:49
"CMakeLists.txt“的正确文本是:
cmake_minimum_required(VERSION 3.6)
project(OpenGLTest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32")
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/lib)
set(SOURCE_FILES main.cpp)
add_executable(OpenGLTest ${SOURCE_FILES})
target_link_libraries(OpenGLTest mingw32 SDL2main SDL2)并且您必须将文件"SDL2.dll“(位于\bin中)复制到”“文件夹中。下面是一个示例https://gyazo.com/fae7ab9ccc73e3a66e9d9c2d3419ff1e
PS:不要忘记“包括”和“库”文件夹。
这是一个测试它的示例代码。
#include <iostream>
#include <SDL.h>
int main(int argc, char* argv []) {
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
std::cout << "Hello, World!" << std::endl;
SDL_Quit();
return 0;
}发布于 2017-02-23 20:12:48
我不能评论,但我认为您应该在每个链接lib:target_link_libraries(OpenGLTest SDL2main SDL2 SDL2_test)之前删除target_link_libraries(OpenGLTest SDL2main SDL2 SDL2_test)
(所述错误消息无法找到正确标志应为-llibSDL2main的-lSDL2main)
发布于 2018-02-09 01:30:17
- set(CMAKE\_CXX\_FLAGS "${CMAKE\_CXX\_FLAGS} -std=c++11 -lmingw32") set(CMAKE\_EXE\_LINKER\_FLAGS "-static-libgcc -static-libstdc++")
https://stackoverflow.com/questions/42424672
复制相似问题