当前位置:  技术问答>linux和unix

只有一行代码的Makefile文件,在执行make命令时出错。请帮忙看看 ,谢谢

    来源: 互联网  发布时间:2015-12-08

    本文导语:  makefile与hello.c在同一路径下,单独使用 gcc -o hello.o hello.c  编译成功。 使用make命令编译时出错:makefile:2:*** missing separator stop. makefile文件只有一行代码“gcc -o hello.o hello.c ”。请问该怎么修改才能使用make命令...

makefile与hello.c在同一路径下,单独使用 gcc -o hello.o hello.c  编译成功。
使用make命令编译时出错:makefile:2:*** missing separator stop.
makefile文件只有一行代码“gcc -o hello.o hello.c ”。请问该怎么修改才能使用make命令编译成功呢?谢谢

|
很简单的,Makefile 就一行就可以

hello:

因为make足够聪明,它会自动把所有hello.c/hello.cpp/hello.o作为输入,并调用正确的编译器/连接器,这叫做隐含规则

如果写多一点,但不通用,像这样

hello:hello.c
$(CC) hello.c -o hello         #键必须

如果写完整一点,稍微有点功能,支持大一点的项目 像这样
CC=gcc
LD=ld
CFLAGS=-g -Wall        #你想编译调试版(有调试符号),显示所有警告
LDFLAGS=-lc -lm       #你链接c函数库,数学函数库

srcfiles:= $(wildcard *.c)   #生成当前目录c源文件列表,用空格分隔
header:=$(wildcard *.h)      #生成生成当前目录h头文件列表,用空格分隔
objects:= $(patsubst %.c,%.o,$(srcfiles))      #从源文件列表生成目标文件列表(通过替换扩展名)
$(objects):$(header)
$(CC) -c $(srcfiles)             # 键必须 ,仅仅编译目标文件
hello:$(objects)
$(CC) -c $(objects)              # 键必须 ,仅仅连接产生输出文件
all:hello $(objects)
$(CC) -c $(objects)              # 键必须 ,做所有的事情
clean:
rm -rc $(objects) hello

|
命令之前要加tab

|
在gcc -o hello.o hello.c 前应该有个"tab"键

|
all:
gcc -o hello.o hello.c

是指按一下TAB键,如果tabstop=4就相当于4个空格,如果tabstop=8相当于8个空格.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 第一次写make文件,报makefile:2: *** missing separator. Stop.错,make文件只有两行
  • 一个Linux/Unix进程,就只有一个"堆"吗?就只有一份crt链接吗?
  • SUN的网站上怎么只有J2SE的API 文档下载,而J2EE的文档怎么只有在线看???
  • 请问只有变量只有extern 形式 但是删去extern 之后 会有 multiple defination error
  • 菜鸟问题:怎样创建一个对所有文件只有只读权限的linux帐号,谢谢!
  • 为什么Home接口为什么只有一个create方法?
  • 只有root才可以读写 RS-232 口吗?普通用户如何对 RS-232 口?
  • javacc 只有一个class文件,怎么用?
  • 用户自定义的信号是不是只有SIGUSR1,SIGUSR2
  • Shell中是不是只有“空串”没有NULL?
  • define后只有一个参数的疑问
  • 研究内核开发的方向是不是只有嵌入式??
  • 新硬盘安装LINUX启动不了,只有一个“L”
  • JBuilder4中的 JInternalFrame 窗口怎么只有最大化和关闭按钮,怎么没有最小化?
  • 我的Linux引导 程序只有DOS了
  • Unix系统中关于硬盘空间问题?(我的硬盘空间快满了,我应该怎么做?,我的硬盘只有8、4G)
  • 初始化jtable时,我只想生成一个只有表头,即列名,还没有数据行的jtable。该如何实现?
  • Apache的主目录在/var/www/html/,但下面就只有两文件夹,但主目录却可以访问?
  • sqlserver只有MDF文件恢复数据库的方法 iis7站长之家
  • sqlserver只有MDF文件恢复数据库的方法
  • 各位老大,如何更好的控制JButton,只有21分,都给了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3