• Linux系统找不到make命令解决办法 我是centos系统,在使用make命令解析文件的时候找不到命令,这时需要安装make工具包。 运行如下命令 yum install gcc automake autoconf libtool make ...

    Linux系统找不到make命令解决办法

    我是centos系统,在使用make命令解析文件的时候找不到命令,这时需要安装make工具包。

    运行如下命令

    yum install gcc automake autoconf libtool make

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    在用安装包安装文件时,经常报错出现如下类似的问题,表示*.o需要依赖*.h文件。

    make: *** No rule to make target '/include/ruby.h', needed by 'zlib.o'。 停止。

    解决方法:

    1. 去makefile中找到*.o文件所以来的*.h文件的路径,确认*.h是否存在。
    2. 或者直接在Makefile中增加一行top_srcdir=../.. 

    然后执行make,一般都过

    转载于:https://my.oschina.net/chaoshu/blog/1542593

    展开全文
  • 当我们在Linux上安装相关的软件源码包时,一般会涉及到以下三个步骤,分别是 ./configure、makemake install 第一步 ./configure 该步骤主要用来检测系统的配置、环境以及相关依赖,如果缺少相关依赖,该脚本会...

    原文链接:Linux – 05 – ./configure && make && make install命令解析


    相关文章:


    当我们在Linux上安装相关的软件源码包时,一般会涉及到以下三个步骤,分别是:./configuremakemake install,现在就让我们来看看这三个命令的具体作用


    一、./configure

    • 该步骤主要用来检测系统的配置、环境以及相关依赖,如果缺少相关依赖,该脚本会中止执行,则软件安装失败

    • 例如:它会检测是否系统是否安装了gcc (用于编译各种源代码的软件),如果未安装,该脚本会中止执行

    • 当该脚本执行完成之后,它会根据之前检查的结果,生成一个
      Makefile 文件,该文件规定了用什么编译器、编译参数等信息,描述了文件编译的项目依赖关系

    • 我们可以通过 –prefix 参数来指定安装位置


    二、make

    • 该步骤主要用来编译源代码,make 命令会从 Makefile 文件中读取相关指令,然后进行编译,编译完成之后会生成可执行文件

    三、make install

    • 该步骤主要用来安装软件,make install 命令会从 Makefile 文件中读取相关指令,然后将软件安装到指定位置

    • 默认安装位置是 /usr/local

    展开全文
  • make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是...
    make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当makefile本身存在语法错误无法被make解析并执行时,前缀包含了makefile文件名和出现错误的行号。

    在下述的错误列表中,省略了普通前缀:

    [FOO] Error NN
    [FOO] signal description
    这类错误并不是make的真正错误。它表示make检测到make所调用的作为执行命令的程序返回一个非零状态(Error NN),或者此命令程序以非正常方式退出(携带某种信号),参考 5.4 命令的错误 一节。
    如果错误信息中没有附加“***”字符串,则是子过程的调用失败,如果Makefile中此命令有前缀“-”,make会忽略这个错误。


    missing separator. Stop.
    missing separator (did you mean TAB instead of 8 spaces?). Stop.
    不可识别的命令行,make在读取Makefile过程中不能解析其中包含的内容。GNU make在读取Makefile时根据各种分隔符(:, =, [TAB]字符等)来识别Makefile的每一行内容。这些错误意味着make不能发现一个合法的分隔符。
    出现这些错误信息的可能的原因是(或许是编辑器,绝大部分是ms- windows的编辑器)在Makefile中的命令之前使用了4个(或者8个)空格代替了[Tab]字符。这种情况,将产生上述的第二种形式产生错误信息。且记,所有的命令行都应该是以[Tab]字符开始的。


    commands commence before first target. Stop.
    missing rule before commands. Stop.
    Makefile可能是以命令行开始:以[Tab]字符开始,但不是一个合法的命令行(例如,一个变量的赋值)。命令行必须和规则一一对应。
    产生第二种的错误的原因可能是一行的第一个非空字符为分号,make会认为此处遗漏了规则的“target: prerequisite”部分。


    No rule to make target `XXX'.
    No rule to make target ` XXX ', needed by `yyy'.
    无法为重建目标“XXX”找到合适的规则,包括明确规则和隐含规则。
    修正这个错误的方法是:在Makefile中添加一个重建目标的规则。其它可能导致这些错误的原因是Makefile中文件名拼写错误,或者破坏了源文件树(一个文件不能被重建,可能是由于依赖文件的问题)。


    No targets specified and no makefile found. Stop.
    No targets. Stop.
    第一个错误表示在命令行中没有指定需要重建的目标,并且make不能读入任何makefile文件。第二个错误表示能够找到makefile文件,但没有终极目标或者没有在命令行中指出需要重建的目标。这种情况下,make什么也不做。参考 第九章 执行make


    Makefile `XXX' was not found.
    Included makefile `XXX' was not found.
    没有使用“-f”指定makefile文件,make不能在当前目录下找到默认Makefile(makefile或者GNUmakefile)。使用“-f”指定文件,但不能读取这个指定的makefile文件。


    warning: overriding commands for target `XXX'
    warning: ignoring old commands for target `XXX'
    对同一目标“XXX”存在一个以上的重建命令。GNU make规定:当同一个文件作为多个规则的目标时,只能有一个规则定义重建它的命令(双冒号规则除外)。如果为一个目标多次指定了相同或者不同的命令,就会产生第一个告警;第二个告警信息说新指定的命令覆盖了上一次指定的命令。


    Circular XXX <- YYY dependency dropped.
    规则的依赖关系产生了循环:目标“XXX”的依赖文件为“YYY”,而依赖“YYY”的依赖列表中又包含“XXX”。


    Recursive variable `XXX' references itself (eventually). Stop.
    make的变量“XXX”(递归展开式)在替换展开时,引用它自身。无论对于直接展开式变量(通过:=定义的)或追加定义(+=),这都是不允许的。


    Unterminated variable reference. Stop.
    变量或者函数引用语法不正确,没有使用完整的的括号(缺少左括号或者右括号)。


    insufficient arguments to function `XXX'. Stop.
    函数“XXX”引用时参数数目不正确。函数缺少参数。


    missing target pattern. Stop.
    multiple target patterns. Stop.
    target pattern contains no `%'. Stop.               <<<====我编译J_SIM时出现的错误!
    mixed implicit and static pattern rules. Stop.
    不正确的静态模式规则。
    第一条错误的原因是:静态模式规则的目标段中没有模式目标;
    第二条错误的原因是:静态模式规则的目标段中存在多个模式目标;
    第三条错误的原因是:静态模式规则的目标段目标模式中没有包含模式字符“%”;
    第四条错误的原因是:静态模式规则的三部分都包含了模式字符“%”。正确的应该是只有后两个才可以包含模式字符“%”。


    warning: -jN forced in submake: disabling jobserver mode.
    这一条告警和下条告警信息发生在:make检测到递归的make调用时,可通信的子make进程出现并行处理的错误。递归执行的make的命令行参数中存在“-jN”参数(N的值大于1),在有些情况下可能导致此错误,例如:Makefile中变量“MAKE”被赋值为“make –j2”,并且递归调用的命令行中使用变量“MAKE”。在这种情况下,被调用make进程不能和其它make进程进行通信,其只能简单的独立的并行处理两个任务”。

    warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
    为了现实make进程之间的通信,上层make进程将传递信息给子make进程。在传递信息过程中可能存在这种情况,子make进程不是一个实际的make进程,而上层make却不能确定子进程是否是真实的make进程。它只是将所有信息传递下去。上层make采用正常的算法来决定这些。当出现这种情况,子进程只会接受父进程传递的部分有用的信息。子进程会产生该警告信息,之后按照其内建的顺序方式进行处理。



    我写了一个Makefile,是用来在Linux2.4下编译一个模块的,其内容如下:
    INCLUDEDIR = /usr/src/linux-2.4/include
    DEBFLAGS = -O2
    CC = gcc
    CFLAGS = -D__KERNEL__ -DMODULE -Wall $(DEBFLAGS)
    CFLAGS += -I$(INCLUDEDIR)
    TARGET = ds1307
    OBJS = $(TARGET).o
    SRC = $(TARGET).c
    $(CC) $(CFLAGS)
    当我执行make的时候,所报错误为:
    Makefile:9:*** commands commence before first target. Stop
    请问高手,我的错误出在什么地方.

    没定义目标,加一行,变成下面这个样子:
    dsl307:
    $(CC) $(CFLAGS)

    我写了一个模块,名字叫zariphix_modules_001.c,内容如下:
    #include<linux/kernel.h>
    #include<linux/module.h>

    int init_module(){
    printk("Hello World!/n");
    return 0;
    }

    void cleanup_module(){
    printk("Bye-bye!/n");
    }

    然后写了一个Makefile,内容如下:

    CC=gcc
    MODFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX
    zariphix_modules_001.o: zariphix_modules_001.c /usr/include/linux/version.h
    $(CC) $(MODFLAGS) -c zariphix_modules_001.c

    我在make的时候提示以下错误:
    Makefile:5: *** 遗漏分隔符 。 停止。
    分隔符是什么呢?还有我找不到我的内核源码树在系统的哪个位置,/usr/src下面没有
    我用的系统是 ubuntu 5.10

    $(CC) $(MODFLAGS) -c zariphix_modules_001.c
    这一行最前面要有一个 TAB,不能在第一列上,注意,是TAB, 不是空格,

    运行 $ sudo make
    又有了一大串错误提示:
    引用:
    gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c zariphix_modules_001.c
    In file included from /usr/include/linux/sched.h:16,
    from /usr/include/linux/module.h:9,
    from zariphix_modules_001.c:2:
    /usr/include/linux/signal.h:2:2: warning: #warning "You should include <signal.h>. This time I will do it for you."
    In file included from /usr/include/linux/resource.h:4,
    from /usr/include/linux/sched.h:79,
    from /usr/include/linux/module.h:9,
    from zariphix_modules_001.c:2:
    /usr/include/linux/time.h:9: 错误:‘struct timespec’ 重定义
    /usr/include/linux/time.h:15: 错误:‘struct timeval’ 重定义
    /usr/include/linux/time.h:20: 错误:‘struct timezone’ 重定义
    /usr/include/linux/time.h:47: 错误:‘struct itimerval’ 重定义
    In file included from zariphix_modules_001.c:2:
    /usr/include/linux/module.h:41: 错误:字段 ‘attr’ 的类型不完全
    /usr/include/linux/module.h:49: 错误:字段 ‘kobj’ 的类型不完全
    zariphix_modules_001.c: 在函数 ‘init_module’ 中:
    zariphix_modules_001.c:5: 警告:隐式声明函数 ‘printk’
    make: *** [zariphix_modules_001.o] 错误 1
    这是怎么回事呢?
    解决这个问题了,原来是因为我的机器中没有内核源码树。
    我下了一个新的内核源码包,编译了一下,但没有安装。再次make就通过。
    可新的问题又出现了,当我用insmod加载模块的时候提示:
    insmod: error inserting 'zariphix_modules_001.ko': -1 Invalid module format
    郁闷。我试过了使用绝对路径和相对路径,也使用modprobe来加载,可都显示错误,这又是怎么回事呢?
    也终于解决了~~~
    安装了编译的内核~~就OK了
    展开全文
  • 安装软件时发现缺少依赖文件,但是又不能一个个地手动安装,太费时间了。 上网找了一个方法:在出现下图情况时   输入 : apt --fix-broken install 即可解决问题,再重新安装即可...

    安装软件时发现缺少依赖文件,但是又不能一个个地手动安装,太费时间了。

    上网找了一个方法:在出现下图情况时

     

    输入 : apt --fix-broken install  即可解决问题,再重新安装即可

    展开全文
  • 比如系统里编译时报了一个错误,缺少 libffi 这个库。 那么一般情况下,对应的包也就是 libffi。 为了确认一下,使用下面的命令: $ yum provides */libffi* libffi-3.0.5-3.2.el6.i686 : A portable foreign
  • 老伴喜欢玩扫雷游戏, 某次, 她发现自己的... 在本文中, 我们来聊聊这样一个常见的问题: 在linux中输入某命令后, 系统提示没有这个命令, 比如:bash: tree: command not found. 系统提示我们, 没有tree这个命令
  • linux编译内核时 输入make menuconfig命令 *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** ...
  • Linux使用版本为2.6.0.我在执行make menuconfig /make config 时遇见两个问题: 第一:error: static declaration of ‘current_menu’ follows non-static declaration 答:这个问题好像在2.6靠后的版本里没有,我...
  • 按书上的编译模块,在写好了Makefile和first.c之后,执行make指令,出现了以下错误: ``` os@os-virtual-machine:~/文档/OS$ makehttp://ask.csdn.net/pages/markdown make -C /lib/modules/4.16.3/build M=/home...
  • sudo apt-get install python-dev
  • make 的常见错误信息

    2013-08-13 10:06:19
    make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是...
  • ![图片](https://img-ask.csdn.net/upload/201703/07/1488868971_491892.jpg)
  • Linux编译内核执行make menuconfig或者make xconfig出错
  • make bzImage的过程

    2012-07-11 19:14:22
    但是,它所使用的make和我们平时用的make是一模一样的。kbuild只是通过预定义一些变量(obj-m,obj-y等等)和目标(bzImage ,menuconfig等等),使内核的编译和扩展变得十分方便。我们不妨yy一下kbuild的一些功能: 1....
  • 出现标题所示的错误代码是因为在Linux安装软件总没有在Windows系统下安装软件那么容易,不同的软件包安装的方式也不同,这是缺少依赖包的原因,解决方法如下 yum -y install gcc gcc-c++ autoconf libjpeg ...
  • 下面是一个计算1+2*3的程序,分成4个文件,一个头文件myhead.h、一个进行加法运算的myadd.c文件、一个进行乘法运算的mymul.c文件、一个result.c文件和一个Makefile,使它们在make工具下生成正确的可执行文件myresult...
  • 今天在使用64位的Ubuntu 14.04系统编译linux源码的make menuconfig命令时,得到了一个错误的提示,说我没有安装相应的库: Unable to find the ncurses libraries or the required header files. 'make menuconfig'...
  • graphics是TC里面的图形库,如果要用的话应该用TC来编译,...如果在linux下编译程序发现系统没有这个库的话,可以到这里下载:  http://download.savannah.gnu.org/releases/libgraph/  然后安装:  tar -zxvf 解压
  • linux 关于编译模块缺少config.h而产生错误的问题 分类: 基于类linux的开发 嵌入式系统的研究与开发 2009-08-02 22:48 3155人阅读 问题来源: Compiling for /home/dsr-uu-0.2 make -C /lib/modules/2.6.18-1....
1 2 3 4 5 ... 20
收藏数 30,355
精华内容 12,142
关键字:

linux 缺少make