Linux下常见的编译问题

转载 2015年11月18日 20:09:50
错误提示: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下安装oracle的常见问题小结

  • 2010年09月10日 16:00
  • 30KB
  • 下载

Linux下MySQL常见问题收集 C语言插入MySQL中文乱码

********************************************************************** 1、Starting MySQL...The ser...
  • e3399
  • e3399
  • 2012年05月16日 16:43
  • 3035

ubuntu 16.04下搜狗输入法不能输入中文解决(linux下常见软件崩溃问题解决方案)

之前一段时间正常使用的搜狗输入法突然无法输出中文(具体现象是,可以呼出搜狗输入法界面,但是候选词列表无显示),解决之后记录下来,希望能为同样遇到这个问题的人提供参考 困扰了我好几天......还好看...

linux下mysql常见问题,个人实践

1,问题:  启动 mysql 服务的时候报如下错误:  Fatal error: Can't open and lock privilege tables: Table 'mysql.hos...

进程线程常见问题——简略版(linux下)

进程的状态及进程状态转换条件,进程与线程的关系,进程间通信,线程间通信,线程的实现...

linux下网络编程常见问题

网络程序异常退出无core文件产生 这种情况发生在一边连接端已经关闭,但是另外一边还在对连接句柄做send操作,这样做send操作的进程会收到SIGPIPE信号,默认行为是直接退出且不会产生core...

Linux下Django Nginx + uWSGI搭建及常见问题

手把手解决新手在linux下快速搭建服务器Django Nginx+uWSGI的问题

linux下redis安装以及处理一些常见问题

最近玩linux系统,安装软件是难免的。这次介绍下,redhat6.5系统,如何安装redis下载1.如图去官网找到地址下载 使用命令wget http://download.redis.io/...
  • ck3207
  • ck3207
  • 2016年10月09日 00:20
  • 175

linux下的安装mysql与遇到一些常见问题的解决方法

本地的安装环境: centos6.9 1、下载 mysql官网地址: http://dev.mysql.com/downloads/mysql/5.6.html#downloads 我...

linux下oracle安装运行常见问题

如何修改linux中oracle数据库的最大连接数用putty连接linux服务器,切换到    su - oracle    sqlplus /nolog 连接到数据库;    conn / as ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下常见的编译问题
举报原因:
原因补充:

(最多只允许输入30个字)