Ошибка Makefile PJSUA: недопустимое использование нестатического элемента данных ‘param’

Работая с pjsua и папкой pjsua-jni, я столкнулся с ошибкой. Будучи новичком в C и C ++, я только учусь на ходу. У меня есть опыт программирования, так что я не так уж и вне своей лиги, я надеюсь.

Ошибки, которые я получаю из файла make

nativesrc/pjsua_wrap.cpp:3843:23: error: invalid use of non-static data member 'param'
pjmedia_codec_fmtp::param *arg2 ;
~~~~~~~~~~~~~~~~~~~~^~~~~

nativesrc/pjsua_wrap.cpp:3843:30: error: use of undeclared identifier 'arg2'
pjmedia_codec_fmtp::param *arg2 ;
^
nativesrc/pjsua_wrap.cpp:3849:3: error: use of undeclared identifier 'arg2'
arg2 = *(pjmedia_codec_fmtp::param **)&jarg2;
^
nativesrc/pjsua_wrap.cpp:3849:32: error: invalid use of non-static data member 'param'
arg2 = *(pjmedia_codec_fmtp::param **)&jarg2;
~~~~~~~~~~~~~~~~~~~~^~~~~
nativesrc/pjsua_wrap.cpp:3849:40: error: expected expression
arg2 = *(pjmedia_codec_fmtp::param **)&jarg2;
^
nativesrc/pjsua_wrap.cpp:3852:25: error: invalid use of non-static data member 'param'
pjmedia_codec_fmtp::param *b = (pjmedia_codec_fmtp::param *) arg1->param;
~~~~~~~~~~~~~~~~~~~~^~~~~
nativesrc/pjsua_wrap.cpp:3852:32: error: use of undeclared identifier 'b'
pjmedia_codec_fmtp::param *b = (pjmedia_codec_fmtp::param *) arg1->param;
^
nativesrc/pjsua_wrap.cpp:3852:57: error: invalid use of non-static data member 'param'
pjmedia_codec_fmtp::param *b = (pjmedia_codec_fmtp::param *) arg1->param;
~~~~~~~~~~~~~~~~~~~~^~~~~
nativesrc/pjsua_wrap.cpp:3852:64: error: expected expression
pjmedia_codec_fmtp::param *b = (pjmedia_codec_fmtp::param *) arg1->param;
^
nativesrc/pjsua_wrap.cpp:3853:40: error: use of undeclared identifier 'b'
for (ii = 0; ii < (size_t)8; ii++) b[ii] = *((pjmedia_codec_fmtp::param *) arg2 + ii);
^
nativesrc/pjsua_wrap.cpp:3853:71: error: invalid use of non-static data member 'param'
for (ii = 0; ii < (size_t)8; ii++) b[ii] = *((pjmedia_codec_fmtp::param *) arg2 + ii);
~~~~~~~~~~~~~~~~~~~~^~~~~
nativesrc/pjsua_wrap.cpp:3853:78: error: expected expression
for (ii = 0; ii < (size_t)8; ii++) b[ii] = *((pjmedia_codec_fmtp::param *) arg2 + ii);

Я не уверен, как объявить этот параметр. При поиске в файле codecs.h я нахожу это

typedef struct pjmedia_codec_fmtp
{
pj_uint8_t      cnt;            /**< Number of parameters.          */
struct param {
pj_str_t    name;           /**< Parameter name.                */
pj_str_t    val;            /**< Parameter value.               */
} param [PJMEDIA_CODEC_MAX_FMTP_CNT]; /**< The parameters.          */
} pjmedia_codec_fmtp;

Таким образом, его вызов структуры param pjmedia_codec_fmtp::param *arg2, Это правильно? Я знаю что :: обычно это то, как вы вызываете статический метод, но вы тоже так называете struct?

В любом случае, помощь будет отличной

Это код, который выдает первую ошибку на

pjmedia_codec_fmtp *arg1 = (pjmedia_codec_fmtp *) 0 ;
pjmedia_codec_fmtp::param *arg2; // Error

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]