LINUX.ORG.RU

Указываемые типы различаются знаковостью.

 


0

1

Пытаюсь собрать midp для arm, во время сборки вываливаются ошибки типа:

/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c: В функции «getReference»:
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:229:13: ошибка: при передаче аргумента 1 «midp_snprintf»: указуемые типы различаются знаковостью [-Werror=pointer-sign]
In file included from /mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:30:0:
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/core/libc_ext/include/midp_libc_ext.h:55:12: замечание: expected «char *» but argument is of type «unsigned char *»
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:230:9: ошибка: при передаче аргумента 3 «reportToLog»: указуемые типы различаются знаковостью [-Werror=pointer-sign]
In file included from /mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:31:0:
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/core/log_base/include/midp_logging.h:92:6: замечание: expected «char *» but argument is of type «unsigned char *»
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:236:17: ошибка: при передаче аргумента 1 «midp_snprintf»: указуемые типы различаются знаковостью [-Werror=pointer-sign]
In file included from /mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:30:0:
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/core/libc_ext/include/midp_libc_ext.h:55:12: замечание: expected «char *» but argument is of type «unsigned char *»
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:237:13: ошибка: при передаче аргумента 3 «reportToLog»: указуемые типы различаются знаковостью [-Werror=pointer-sign]
In file included from /mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/links/native/share/midp_link.c:31:0:
/mnt/filestore/boiler3/phoneMe/phone/midp/build/linux_fb_gcc/../../src/core/log_base/include/midp_logging.h:92:6: замечание: expected «char *» but argument is of type «unsigned char *»
cc1: all warnings being treated as errors
make: *** [/mnt/filestore/boiler3/phoneMe/phone/output/midp/obj/arm/midp_link.o] Ошибка 1

Вот этот место в коде:

static void
getReference(int refId, char *msg, jobject obj)
{
if (refId == INVALID_REFERENCE_ID) {
midp_snprintf(gKNIBuffer, KNI_BUFFER_SIZE,
"invalid reference ID in %s", msg);
REPORT_CRIT(LC_CORE, gKNIBuffer);
KNI_ReleaseHandle(obj);
} else {
SNI_GetReference(refId, obj);
if (KNI_IsNullHandle(obj)) {
midp_snprintf(gKNIBuffer, KNI_BUFFER_SIZE,
"null reference from SNI_GetReference in %s", msg);
REPORT_CRIT(LC_CORE, gKNIBuffer);
}
}
}

указуемые типы различаются знаковостью

По мотивам ошибки нашел приблизительно следующее: «Строковый литерал по умолчанию в GCC имеет тип «signed char *». В первом случае объявляется переменная «указатель на unsigned char» и инициилизируется указателем на signed char», но не могу понять как это применить к этому коду.

★★★★★

Последнее исправление: splinter (всего исправлений: 1)

gKNIBuffer объявлен как «unsigned char *», а ожидается «char *», который по умолчанию знаковый.

Чтобы «поправить»: midp_snprintf((char *)gKNIBuffer, KNI_BUFFER_SIZE, ...

alexru ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.