如何在Clion项目中包含SDL_gfx库?

时间:2019-10-23 19:30:38

标签: cmake sdl-2

所以我遇到了一件奇怪的事情,我可以使SDL2库在clion中工作,但是如果我包含SDL_gfx库,它将无法编译。

所以这是我到目前为止所做的:

  1. 我已经从网站上下载了Windows 64版本的SDL,将其解压缩,并将文件拖到相应的MinGW文件夹中。
  2. 我已经编辑了cmake文件,以便clion也可以看到它,并且它确实有效

    我的cmake文件:

    <div class="block" data-hover-bg="#a30003" style="background-color: #dddddd">Text</div>
    
  3. 我已经从here下载了SDL_gfx包,并将.h和.a文件放入相应的MinGW文件夹中。 Clion可以看到它,并且看起来很正常,直到我进行编译:

    Here you can see, that it is not highlighted, and it does nit have a problem with it.

如果我的代码是:

$(".block").mouseover(function(){
    $(this).data('leave-bg', $(this).css('background-color'));
    $(this).css('background-color', $(this).data('hover-bg'));
}).mouseleave(function(){
    $(this).css('background-color', $(this).data('leave-bg'));
    $(this).removeData('leave-bg');
});

比它有效。它将编译并出现空白窗口。但是,如果我从注释中删除了这三行,那么它将无法编译,并且我将得到下一个错误:

cmake_minimum_required(VERSION 3.15)
project(pontok C)


set(CMAKE_C_STANDARD 99)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")

find_package(SDL2 REQUIRED)

add_executable(pontok main.c)

include_directories(${SDL2_INCLUDE_DIR}
        ${SDL2_IMAGE_INCLUDE_DIR}
        ${SDL2_MIXER_INCLUDE_DIR}
        )

target_link_libraries(pontok ${SDL2_LIBRARY}
        ${SDL2_IMAGE_LIBRARY}
        ${SDL2_MIXER_LIBRARY}
        )

奇怪的是clion可以看到这些circleRGBA功能,在this picture中我们可以看到它可以识别功能,并在变量旁边写入属性。

2 个答案:

答案 0 :(得分:1)

不幸的是,SDL_gfx没有标准的cmake模块。但是您可以通过搜索FindSDL2_gfx.cmake在互联网上找到一个。将此文件放在您的cmake/Modules目录中。

find_package(SDL2_gfx REQUIRED)

然后使用${SDL2_GFX_LIBRARIES}进行链接

答案 1 :(得分:0)

好,所以我知道了。问题是,clion无法看到.c SDL2_gfx文件,因此我不得不将它们添加到项目中,并且必须在CMakeList.txt中编辑以下行:

datagrid's

通过这种方式,它可以编译并正常工作。