Библиотека только заголовков не использует защиту заголовков. Как я могу использовать библиотеку в других заголовочных файлах? - PullRequest
1 голос
/ 13 июня 2019

Я работаю с библиотекой только для заголовков ( Nuklear ). Я включаю это в мой main.c файл так:

#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 в один из заголовков компонента, но получил ошибку повторного объявления:

error: redefinition of 'nk_sdl_shutdown'

Я не знаю другого способа доступа к типам из nuklear.h в других заголовочных файлах. Любая помощь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Вы можете заключить #include для этой библиотеки в другой заголовок.

#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
1 голос
/ 14 июня 2019

Похоже, что теперь включает в себя защиту заголовков .Попробуйте обновить библиотеку.Если это не сработает, отправьте сообщение об ошибке или, что еще лучше, запрос на извлечение.

Это программное обеспечение с открытым исходным кодом, если вы обнаружите что-то не так, вы можете исправить это, вместо того чтобы пытаться обойти проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...