错误提示: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; (责任编辑:IT) |