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

胡子

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

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

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

    我的cmake文件:

    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}
            )
    
  3. 我已经从此处下载了SDL_gfx软件包,并将.h和.a文件放入相应的MinGW文件夹中。Clion可以看到它,并且在我进行编译之前看起来是正常的:

    在这里您可以看到它没有突出显示,并且确实存在问题。

如果我的代码是:

#include <stdio.h>
#include <math.h>
#include <SDL2\SDL2_gfxPrimitives.h>
#include <SDL2\SDL.h>

const int SCREEN_WIDH = 640;
const int SCREEN_HEIGHT = 480;

int main(int argc, char *argv[]) {
    if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
        SDL_Log("Nem indithato az SDL: %s", SDL_GetError());
        exit(1);
    }
    SDL_Window *window = SDL_CreateWindow("SDL peldaprogram", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 440, 360, 0);
    if (window == NULL) {
        SDL_Log("Nem hozhato letre az ablak: %s", SDL_GetError());
        exit(1);
    }
    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE);
    if (renderer == NULL) {
        SDL_Log("Nem hozhato letre a megjelenito: %s", SDL_GetError());
        exit(1);
    }
    SDL_RenderClear(renderer);

    int x, y, r;

    //circleRGBA(renderer, x, y, r, 255, 0, 0, 255);
    //circleRGBA(renderer, x + r, y, r, 0, 255, 0, 255);
    //circleRGBA(renderer, x + r * cos(3.1415 / 3), y - r * sin(3.1415 / 3), r, 0, 0, 255, 255);

    SDL_RenderPresent(renderer);

    SDL_Event ev;
    while (SDL_WaitEvent(&ev) && ev.type != SDL_QUIT) {
    }

    SDL_Quit();
    return 0;
}

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

CMakeFiles\pontok.dir/objects.a(main.c.obj): In function `SDL_main':
C:/Prog/pontok/main.c:28: undefined reference to `circleRGBA'
C:/Prog/pontok/main.c:29: undefined reference to `circleRGBA'
C:/Prog/pontok/main.c:30: undefined reference to `circleRGBA'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [CMakeFiles\pontok.dir\build.make:88: pontok.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:75: CMakeFiles/pontok.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/pontok.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: pontok] Error 2

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

胡子

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

add_executable(pontok main.c SDL2_framerate.c SDL2_gfxPrimitives.c SDL2_imageFilter.c SDL2_rotozoom.c)

这样,它可以编译并正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用CMake将外部库(增强型)包含到CLion C ++项目中?

来自分类Dev

如何在git项目中包含库jar

来自分类Dev

如何在Composer添加的Behat项目中包含库/ API?

来自分类Dev

如何在Grunt项目中包含Javascript库?

来自分类Dev

如何在Eclipse项目中包含和使用GSON库

来自分类Dev

如何在我的项目中包含GitHut库(Android Studio)

来自分类Dev

如何在Android主项目中包含库项目中使用的AAR文件

来自分类Dev

如何在包含的Android库上过渡地使用Android项目中Java项目中的jar?

来自分类Dev

如何在Android主项目中包含库项目中使用的AAR文件

来自分类Dev

此SDL_gfx代码是否涉及竞争条件?

来自分类Dev

此SDL_gfx代码是否涉及竞争条件?

来自分类Dev

如何在可可项目中包含<cstring>

来自分类Dev

如何在项目中包含GData?

来自分类Dev

如何在我的Java项目中正确包含蜡染库?

来自分类Dev

如何在Android Studio的React本机项目中包含外部库?

来自分类Dev

CMake:在项目中包含库

来自分类Dev

如何在我的Gradle项目中包含同级项目?

来自分类Dev

如何将 createjs 库包含到 reactjs 项目中

来自分类Dev

我如何在没有pip的情况下将github中的库包含在python项目中?

来自分类Dev

如何在我的项目中包含图像作为资源?

来自分类Dev

如何在iOS项目中包含C文件

来自分类Dev

如何在Android Library Gradle项目中包含依赖项?

来自分类Dev

如何在Grunt项目中包含超棒的字体?

来自分类Dev

如何在Android项目中包含sqlite4java

来自分类Dev

如何在Anjuta项目中包含资源文件

来自分类Dev

如何在laravel项目中包含外部文件?

来自分类Dev

如何在c ++项目中包含所有头文件?

来自分类Dev

如何在我的项目中包含angular-ui-route

来自分类Dev

我如何在MVC项目中包含经典的ASP页面

Related 相关文章

  1. 1

    如何使用CMake将外部库(增强型)包含到CLion C ++项目中?

  2. 2

    如何在git项目中包含库jar

  3. 3

    如何在Composer添加的Behat项目中包含库/ API?

  4. 4

    如何在Grunt项目中包含Javascript库?

  5. 5

    如何在Eclipse项目中包含和使用GSON库

  6. 6

    如何在我的项目中包含GitHut库(Android Studio)

  7. 7

    如何在Android主项目中包含库项目中使用的AAR文件

  8. 8

    如何在包含的Android库上过渡地使用Android项目中Java项目中的jar?

  9. 9

    如何在Android主项目中包含库项目中使用的AAR文件

  10. 10

    此SDL_gfx代码是否涉及竞争条件?

  11. 11

    此SDL_gfx代码是否涉及竞争条件?

  12. 12

    如何在可可项目中包含<cstring>

  13. 13

    如何在项目中包含GData?

  14. 14

    如何在我的Java项目中正确包含蜡染库?

  15. 15

    如何在Android Studio的React本机项目中包含外部库?

  16. 16

    CMake:在项目中包含库

  17. 17

    如何在我的Gradle项目中包含同级项目?

  18. 18

    如何将 createjs 库包含到 reactjs 项目中

  19. 19

    我如何在没有pip的情况下将github中的库包含在python项目中?

  20. 20

    如何在我的项目中包含图像作为资源?

  21. 21

    如何在iOS项目中包含C文件

  22. 22

    如何在Android Library Gradle项目中包含依赖项?

  23. 23

    如何在Grunt项目中包含超棒的字体?

  24. 24

    如何在Android项目中包含sqlite4java

  25. 25

    如何在Anjuta项目中包含资源文件

  26. 26

    如何在laravel项目中包含外部文件?

  27. 27

    如何在c ++项目中包含所有头文件?

  28. 28

    如何在我的项目中包含angular-ui-route

  29. 29

    我如何在MVC项目中包含经典的ASP页面

热门标签

归档