尝试编译c ++ UDP客户端程序时,我遇到了一个奇怪的编译器错误.
g ++ -o client Udp.cpp ClientMain.c -I.-lpthread
在ClientMain.c中包含的文件中:1:0:
Udp.h:在析构函数'CUdpMsg :: ~CUdpMsg()'中:
Udp.h:103:43:错误:在此范围内未声明'free'
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>
Run Code Online (Sandbox Code Playgroud)
像'memcpy'这样的函数应该在string.h中声明...我已经声明了它(和string和cstring),我仍然遇到这些编译器错误.有没有人知道为什么会这样?谢谢.
我在初始化结构时遇到奇怪的编译器错误.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
struct RadarData
{
unsigned int messageID : 32;
unsigned int time : 32;
float az;
float el;
};
struct RadarData sendData;
sendData.az = 25;
sendData.el = 10;
sendData.messageID = 1;
sendData.time = 100;
Run Code Online (Sandbox Code Playgroud)
根据一些不同的教程,这看起来很好,但在两台不同的机器上,我在编译时遇到以下错误:
testserver.c:15:9:错误:在'.'之前预期'=',',',';','asm'或' attribute '.token
testserver.c:16:9:error:在'.'之前预期'=',',',';','asm'或' attribute '.token
testserver.c:17:9:error:在'.'之前预期'=',',',';','asm'或' attribute '.token
testserver.c:18:9:error:在'.'之前预期'=',',',';','asm'或' attribute '.代币
为什么我收到此错误?