URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 425
[ Назад ]

Исходное сообщение
"gcc компилятор"

Отправлено Shurik , 21-Янв-02 16:57 
Ситуация следующая...
В test.cpp Подключаем файл user.h
#include <sys/user.h>

при компиляции "gcc test.cpp -lkvm"
выдается ошибка
/usr/include/vm/vm_map.h: In function `int _vm_map_lock_upgrade(vm_map *, proc *)':
/usr/include/vm/vm_map.h:273: ANSI C++ forbids implicit conversion from `void *' in argument passing
*** Error code 1

ошибку выдает на строке (файл /usr/include/vm/vm_map.h)
error = lockmgr(&map->lock, LK_EXCLUPGRADE, (void *)0, p);

по всей видимости ей не нравиться (void *)0

ежели файл переименовать в test.c - то ошибок нет.

очевидно данное происходит из-за разницы компилирования между С и С++.
Но мне нужно именно С++.. уже написанно несколько нужных класов, и переписывать на си очень бы не хотелось..

Кто-нибудь подскажите, какие могут быть варианты это исправить.. ( очень не хотелось бы править файл /usr/include/vm/vm_map.h)


Содержание

Сообщения в этом обсуждении
"RE: gcc компилятор"
Отправлено XMan , 23-Янв-02 17:55 
g++ пробовал пользовать ?

"RE: gcc компилятор"
Отправлено Shurik , 01-Фев-02 12:19 
C g++ та же фигня... ровно такаяже ошибка

"RE: gcc компилятор"
Отправлено yvb , 31-Янв-02 02:32 
А зачем вообще этот (void*) тут нужен?
IMHO нуля вполне достаточно.
Юра.

"RE: gcc компилятор"
Отправлено Shurik , 01-Фев-02 12:20 
Вот именно но как-то не очень хочется править системный инклудный файл...

"RE: gcc компилятор"
Отправлено Hermann , 07-Фев-02 20:00 
Ну, не знаю... У меня ошибок никаких не выдается.
Другое дело, что у меня gcc ругается на ключики -lkvm

"RE: gcc компилятор"
Отправлено Max V. Zinal , 12-Мрт-02 22:49 
Попробуйте вставить в опции
  -fpermissive
Проблема проистекает из того, что хэдер сишный, а файл, в который он включается, зовется test.cpp. Как известно, в C++ правила построже. Дабы gcc/g++/egcs/как его еще там наплевал на правила, есть эта вредно-полезная опция.

"RE: gcc компилятор"
Отправлено alex , 24-Мрт-02 04:34 
extern "C" {
include <sys/user.h>
}