zoukankan      html  css  js  c++  java
  • linux编译中的常见问题

    转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类型字符串 后面有一个 ' ' 作为 结尾标示符隐含加入。
    sizeof(a) 就包括了 ' '
    而strlen(a) 没有将 ' '计算在内。

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

  • 相关阅读:
    pgrep 查询进程的工具
    shell脚本中>/dev/null的含义
    一条命令批量替换多个文件中字符串
    Centos 6.4上面用Shell脚本一键安装vsftpd
    centos 卸载vsftpd方法
    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15
    SHELL学习笔记----IF条件判断,判断条件
    CentOS挂载新硬盘
    Linux fdisk 命令
    Linux df 命令
  • 原文地址:https://www.cnblogs.com/nucdy/p/5449108.html
Copyright © 2011-2022 走看看