Я работаю над проектом ffmepg c++, который связывает файл hpp в файле hpp:
#define snprintf _snprintf
#include <stdio.h>
#include <cstdio>
#include <unistd.h>
include <assert.h>
#if defined _MSC_VER && _MSC_VER >= 1200
#pragma warning( disable: 4244 4510 4512 4610 4146 4996 4005)
#define sprintf sprintf_s
#define _sprintf _sprintf_s
#define _snprintf _snprintf_s
#endif
snprintf (oc->filename, sizeof(oc->filename), "%s", filename);
он дает ошибку:
‘_snprintf was not declared in this scope
Очень странно, что ошибка показывает "_snprintf", в то время как я использую "snprint". Этот код написан другими, я не понял эти #define, которые он использовал. Если я удалю строку #define sprintf sprintf_s, она дает ошибку:
segmentation fault(core dumped)
Из-за ffmpeg несовместим с c++, у меня есть stdio.h и cstdio как внутри extern C, так и вне extern C, но ошибка продолжает проявляться. В чем проблема? Как это исправить?
Сначала измените эту строку
include <assert.h>
с:
#include <assert.h>
и напишите эту строку
#define snprintf _snprintf
после включает и пытается компилировать код