首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有头的库不使用头保护。如何在其他头文件中使用该库?

只有头的库不使用头保护。如何在其他头文件中使用该库?
EN

Stack Overflow用户
提问于 2019-06-14 04:52:59
回答 2查看 85关注 0票数 1

我正在使用一个只包含头文件的库(Nuklear)。我将其包含在main.c文件中,如下所示:

代码语言:javascript
复制
#define SDL_MAIN_HANDLED
#include <GL/glew.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>

#define NK_INCLUDE_FIXED_TYPES
#define NK_INCLUDE_STANDARD_IO
#define NK_INCLUDE_STANDARD_VARARGS
#define NK_INCLUDE_DEFAULT_ALLOCATOR
#define NK_INCLUDE_VERTEX_BUFFER_OUTPUT
#define NK_INCLUDE_FONT_BAKING
#define NK_INCLUDE_DEFAULT_FONT
#define NK_IMPLEMENTATION
#define NK_SDL_GL3_IMPLEMENTATION
#include "nuklear.h"
#include "nuklear_sdl_gl3.h"

我想创建一个文件来容纳一些组件,并将代码分解成更小的块。我试图通过将nuklear.h包含到一个组件标头中来做到这一点,但得到了一个重新声明错误:

代码语言:javascript
复制
error: redefinition of 'nk_sdl_shutdown'

我不知道在其他头文件中从nuklear.h访问类型的任何其他方法。有什么需要帮忙的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-14 05:30:11

现在看起来像it does include header guards了。尝试更新库。如果这不起作用,那就提交一个bug,或者更好的是,一个拉请求。

它是开源软件,如果你发现错误,你可以修复它,而不是试图解决问题。

票数 2
EN

Stack Overflow用户

发布于 2019-06-14 05:05:26

您可以将该库的#include包装在另一个标头中。

代码语言:javascript
复制
#ifndef NUKLEAR_INCLUDED
#define NUKLEAR_INCLUDED

#define NK_INCLUDE_FIXED_TYPES
#define NK_INCLUDE_STANDARD_IO
#define NK_INCLUDE_STANDARD_VARARGS
#define NK_INCLUDE_DEFAULT_ALLOCATOR
#define NK_INCLUDE_VERTEX_BUFFER_OUTPUT
#define NK_INCLUDE_FONT_BAKING
#define NK_INCLUDE_DEFAULT_FONT
#define NK_IMPLEMENTATION
#define NK_SDL_GL3_IMPLEMENTATION
#include "nuklear.h"
#include "nuklear_sdl_gl3.h"

#endif
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56588419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档