转linux编译中的常见问题

错误提示: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;

linux编译中的常见问题的更多相关文章

  1. linux 编译中required file `./ltmain.sh' not found 错误的解决办法(转)

    在linux下编译c/c++程序出错:$ automake --add-missing....configure.in:18: required file `build/ltmain.sh' not ...

  2. Linux编译安装软件常见问题及排查

    1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ...

  3. 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问

    在我学习使用Windows的IDEA的过程中,将代码文件转移到Linux虚拟机当中,但无法在Linux系统中统计代码行数. 注意:拷贝进虚拟机的文件均能编译运行. 具体过程如下: root@yogil ...

  4. Linux服务器中OpenSSH的源码编译与升级

                      Linux服务器中OpenSSH的源码编译与升级 https://www.oschina.net/question/12_7383    

  5. 35、在编译Linux内核中增加程序需要完成以下3项工作

    在编译Linux内核中增加程序需要完成以下3项工作: 将编写的源代码拷入Linux内核源代码的相应目录. 在目录的Kconfig文件中增加关于新源代码对应项目的编译配置选项 在目录的Makefile文 ...

  6. maven项目引入外部第三方jar包,引入、本地编译、第三方jar一起打到jar中、在linux机器中解决classnotfound(配置classpath),笔记整理。

    文章目录 引用的第三方jar的目录结构(示例) 引入第三方jar进行dependency使项目内能import 本地编译 第三方jar一起打到jar中 在linux机器中解决classnotfound ...

  7. linux 编译,链接和加载

    1.   序 最近在折腾各种.so,碰到了一些问题,一开始对于很多错误也没有头绪,茫然不知所措.索性化了一天多时间将<<程序员的自我修养—链接.装载与库>>中部分内容略读了一遍 ...

  8. Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  9. 【转】【整理】将Linux脚本中的正常输出,警告,错误等信息输出到文件中

     本文来自:http://blog.csdn.net/woshinia/article/details/18040063   很早以前  编译的时候 就在用 2>&1,但是一直没有生成一 ...

随机推荐

  1. python库requests登录zhihu

    废了很大劲,开始搞错了登录post信息的网址,后来没找到xsrf信息,看了很多文章才搞定. 大概过程如下: 打开登录页面,同时打开fldder,输入信息去监控过程. 查看post了哪些信息,哪些是自己 ...

  2. libcurl with telnet

    #include <stdio.h>#include <string.h>#include <curl/curl.h>#include <curl/easy. ...

  3. IOS基础之 (九) Foundation框架

    一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...

  4. Bootstrap教程:[4]栅格系统详解

    http://jingyan.baidu.com/article/6f2f55a1852aa1b5b83e6c5a.html 们都知道bootstrap3.0使用了四种栅格选项来形成栅格系统,这四种选 ...

  5. 代码注册广播接收者&利用广播调用服务的方法服务声命周期(混合开启)

    1)说明文档: 2)效果演示: 3)代码演示:

  6. --------------------------PHP中访问数据库时带来的响应速度的问题解决-------------------------------------

    ----------------------------------------------------------------上图是秒,下图是毫秒比较TTFB-------------------- ...

  7. Ubuntu14.04编译安装mysql5.6.26

    Ubuntu14.04编译安装mysql5.6.26 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libncurses5-d ...

  8. Java初学(八)

    一.图解String类创建对象及赋值 面试题: 二.String.StringBuffer.StringBuilder区别 1.String内容不可变,而StringBuffer.StringBuil ...

  9. ASP.NET MVC4 log4net

    LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

  10. Objective-C 之优雅的命名(转)

    There are only two hard things in Computer Science: cache invalidation and naming things. 在计算机科学中只有两 ...