您的位置:首页 > 编程语言 > C语言/C++

c语言常见错误处理方法

2016-12-03 22:58 281 查看
转载于http://blog.csdn.net/vblittleboy/article/details/8052027

错误提示:Makefile:2: *** 遗漏分隔符 。 停止。

原因makefile中 gcc语句前 缺少一个 tab分割符

错误提示: bash: ./makefile: 权限不够

原因 makefile 是文本文件不可执行,即使是root,也会权限不够

我们应该在命令行下使用make, 该指令会自动搜寻所在目录下的makefile文件,如果使用其他名称如(makefile.am)则应加参数指出,如:make -f makefile.am

错误提示 : a.c:6: 错误:程序中有游离的 ‘\200’

a.c:6: 错误:程序中有游离的 ‘\200’

a.c:8: 错误:程序中有游离的 ‘\343’

a.c:8: 错误:程序中有游离的 ‘\200’

a.c:8: 错误:程序中有游离的 ‘\200’

原因

这个错误一般是由于你程序(a.c)中使用了中文的标点符号,比如;,},+。

改成英文的就行了。

甚至有时候空格也会出现类似错误,删掉该空格 重新输入。

如果找不出来,解决的办法就是关闭中文输入法然后把有错这一行重新敲一遍。

错误 提示 :

0警告:隐式声明与内建函数 ‘printf’ 不兼容

1 警告: 隐式声明与内建函数 ‘malloc’ 不兼容  

2警告: 隐式声明与内建函数 ‘exit’ 不兼容   

3警告:隐式声明与内建函数 ‘execlp’ 不兼容

4警告:隐式声明与内建函数 ‘strlen’ 不兼容

5 错误:‘FILE’ 未声明   (//使用 fopen)

解决方法:

加上头文件

0#include "stdio.h"

1#include <malloc.h>

2#include <stdlib.h>

3#include <unistd.h>

4#include <string.h>

5#include <stdio.h>

C类型字符串 后面有一个 '\0 ' 作为 结尾标示符隐含加入。

sizeof(a) 就包括了 '\0 '

而strlen(a) 没有将 '\0 '计算在内。

错误:‘O_RDONLY’ 未声明

来源 fd = open("test.file", O_RDONLY);

解决:

#include <fcntl.h>

int open(const char *pathname, int oflag, ... /* mode_t mode */);

语法参考:http://baike.baidu.com/view/26337.htm

区别于:

#include<stdio.h>

FILE * fopen(const char * path,const char * mode);

语法参考:http://baike.baidu.com/view/656681.htm

错误:‘CLONE_VM’ 未声明

错误:‘CLONE_FILES’ 未声明

来源: 使用clone时候   clone(do_something, child_stack, CLONE_VM|CLONE_FILES, NULL);

解决: #include <sched.h>

错误:‘pid_t’ 未声明

来源: /*定义子进程号 */    pid_t pid;

解决:

#include <stdlib.h>

错误:‘options’ 的存储大小未知

来源 : union semun options;             http://dev.yesky.com/199/7643199_1.shtml
原因: semun定义问题

/usr/include/linux/ipc.h 中有定义

但是 /usr/include/sys/ipc.h 中没有

而通常程序会包含 sys/ipc.h sys/sem.h 不可能去包含 linux/ipc.h, linux/sem.h, 否则不可能在unix 下通过

解决:

union semun {

int val;

struct semid_ds *buf;

ushort *array;

}arg;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: