make: *** 没有指明目标并且找不到 makefile。 停止。您 是怎么解决这个问题的 呢?给能帮助下吗?
是要先./configure一下,再make,再make install。
源码安装的方法是:
step1 ./configure
step2 make
step3 make install
如果仔细看,会发现,解压之后的软件源码包的目录下没有Makefile,然后在执行了./configure
会生成了很多奇怪名字的文件(./configure命令就是执行软件源码根目录下的名为configure的脚本),就包括了Makefile文件,在./configure的时候,Makefile.in是入口。
扩展资料:
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。
而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。
makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。
在 UNIX 系统中,习惯使用 Makefile 作为 makefile 文件。如果要使用其他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefile 文件:
参考资料来源:百度百科-Makefile
按照步骤一步一步来吧,有什么问题继续问我把。这个也好长时间没弄了linux了,有点生疏了 呵呵~
1.建目录
在工作目录下建一个zsy目录,用它来存放zsy程序及相关文件。
2.编写程序
利用gedit编写C程序:实现万年历功能的calendar.h和calendar.c程序,实现排序功能的 sort.h和sort.c程序以及主程序zsymain.c(程序代码及注释见附录)。
3.生成configure
执行autoscan命令生成一个名为configure.scan的文件,我们拿它作为configure.in的蓝本。将configure.scan改名为configure.in,然后打开configure.in,将文件修改为一下内容:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT(zsy, 1.0, BUG-REPORT-ADDRESS)
AM_INIT_AUTOMAKE(zsy, 1.0)
AC_CONFIG_SRCDIR([sort.h])
AM_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_FUNC_MALLOC
AC_OUTPUT(Makefile)
然后先执行aclocal命令,生成aclocal.m4文件,再执行autoconf命令,生成configure文件。
4.执行autoheader命令
执行autoheader命令,生成config.h.in。这一步非常重要,网上很多的automake生成Makefile方法中都没有包含这一步,然而,缺少这一步将会出错。
5.编写Makefile.am
新建Makefile.am文件,写入如下内容:
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = zsy
zsy_SOURCES = zsymain.c calendar.c sort.c
6.运行automake
使用命令“add --add-missing”或“add -a”,automake会根据Makefile.am产生一些文件,包括最重要的Makefile.in文件。
7. 执行configure生成Makefile
执行/.configure命令,即可生成Makefile。
8.生成可执行文件
在终端上输入:make,即可生成可执行程序zsy。
9.运行zsy
输入./zsy,运行zsy程序。此时将会见到如下提示: