C2065 для stb_image в исходном файлеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C2065 для stb_image в исходном файле

Сообщение Anonymous »

У меня есть 3 файла: main.cpp, static_mesh.hpp и static_mesh.cpp.
main.cpp включает static_mesh.hpp; static_mesh.hpp включает tiny_gltf.h, который включает stb_image; static_mesh.cpp включает static_mesh.hpp.
main.cpp определяет STB_IMAGE_IMPLEMENTATION и STB_IMAGE_WRITE_IMPLEMENTATION перед включением static_mesh.hpp.
Проблема в том, что я получаю ошибки, потому что компилятор не распознает тип stbi_uc и функцию stbi_load_from_memory() в static_mesh.cpp.
Вот раздел кода для этих файлов:
main.cpp:

Код: Выделить всё

...
#define STB_IMAGE_IMPLEMENTATION
#define STB_IMAGE_WRITE_IMPLEMENTATION

#define TINYGLTF_IMPLEMENTATION

#include "static_mesh.hpp"
...
static_mesh.hpp:

Код: Выделить всё

#pragma once

#include 
...
static_mesh.cpp:

Код: Выделить всё

#include 
...
int x, y;
int  channels_in_file;
stbi_uc* data = stbi_load_from_memory(v_ptr, bufferview.byteLength, &x, &y, &channels_in_file, image.component);
...
РЕДАКТИРОВАТЬ: ошибки, которые я получаю:

Код: Выделить всё

static_mesh.cpp(71,3): error C2065: 'stbi_uc': undeclared identifier
static_mesh.cpp(71,12): error C2065: 'data': undeclared identifier
static_mesh.cpp(71,19): error C3861: 'stbi_load_from_memory': identifier not found
static_mesh.cpp(79,104): error C2065: 'data': undeclared identifier
ОБНОВЛЕНИЕ: в итоге я использовал этот обходной путь: определил TINYGLTF_NO_INCLUDE_STB_IMAGE и включил его самостоятельно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ource-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»