Я получаю странную ошибку компилятора при попытке скомпилировать клиентскую программу c ++ UDP.
g ++ -o клиент Udp.cpp ClientMain.c -I. -lpthread
В файле из ClientMain.c: 1: 0:
Udp.h: В деструкторе «CUdpMsg :: ~ CUdpMsg ()»:
Udp.h: 103: 43: ошибка: "бесплатно" не было объявлено в этой области
Udp.h: в функции-члене «void CUdpMsg :: Add (in_addr_t, const void *, size_t)»:
Udp.h: 109: 34: ошибка: "malloc" не был объявлен в этой области видимости
Udp.h: 109: 41: ошибка: memcpy не был объявлен в этой области
ClientMain.c: в функции «int main (int, char **)»:
ClientMain.c: 28: 57: ошибка: memcpy не был объявлен в этой области
ClientMain.c: 29: 61: ошибка: «printf» не был объявлен в этой области
ClientMain.c: 30: 17: ошибка: «stdout» не был объявлен в этой области
ClientMain.c: 30: 23: ошибка: "fflush" не был объявлен в этой области
ClientMain.c: 34: 68: ошибка: «printf» не был объявлен в этой области
ClientMain.c: 35: 17: ошибка: «stdout» не был объявлен в этой области
ClientMain.c: 35: 23: ошибка: "fflush" не был объявлен в этой области
ClientMain.c: 37: 30: ошибка: «usleep» не был объявлен в этой области
У меня в начале моего файла cpp объявлено следующее.
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <ifaddrs.h>
#include <net/if.h>
#include <cstdlib>
#include <string>
#include <stdlib.h>
#include <cstring>
#include <errno.h>
такие функции, как 'memcpy', должны быть объявлены в string.h ... У меня он (а также строка и cstring) все объявлены, и я все еще получаю эти ошибки компилятора. Кто-нибудь знает, почему это происходит? Спасибо.
ClientMain.c
(примечание.c
, а не.cpp
)? - person Georg Fritzsche   schedule 19.07.2011UDP.h
- person Djole   schedule 19.07.2011std::malloc
, если вы включаете заголовки C (т.е. заголовки .h) - person MSalters   schedule 19.07.2011<stdlib.h>
и<cstdlib>
. - person triclosan   schedule 19.07.2011