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

写makefile的高手,能否帮我看下~~~~斑竹~

    来源: 互联网  发布时间:2016-06-11

    本文导语:  环境是在aix 64位下面,,目前make是这个错误  $ make          make checkbin  from dependencies.ot find a rule to create target checkbin  Stop.  make: 1254-004 The error code from the last command is 2.  Stop.  不明白什么意思 ----...

环境是在aix 64位下面,,目前make是这个错误 
$ make 
        make checkbin 
from dependencies.ot find a rule to create target checkbin 
Stop. 
make: 1254-004 The error code from the last command is 2. 


Stop. 

不明白什么意思
---------------------------------------------------------------------------------
具体 makefile 

缩减版 

CFLAG=-DDEBUG 
CLINK=-lpthread -lbsd -liconv 

OBJPATH=. 
CC=gcc -g 

LIBDIR=./lib 
USRLIB=$(LIBDIR)/lib.a 

#CFLAGS = -ggdb  -D_REENTRANT -Wall 

SYBASELIBS = -lodbc 

#OBJC_INCLUDE_PATH=$(HOME)/scms_code/obj 

BIN_DIR=./bin 

LIB=./lib 
COM=./com 

MAKEFILE=makefile 

EXESCMSNAME=scms 

OBJSCMS=error.o userlist.o 

EXESCMS= $(BIN_DIR)/$(EXESCMSNAME) 

up: 
make checkbin 
make $(EXESCMS) 
make clean 

checkbin: 
if [ -d $(BIN_DIR) ]; then  
echo $(BIN_DIR) exist;  
if [ -f $(EXESCMS) ]; then  
rm $(EXESCMS);  
echo rm old $(EXESCMS);  
fi 
else  
mkdir $(BIN_DIR);  
echo mkdir $(BIN_DIR) OK;  
fi 

clean: 
rm -f *.o 

$(EXESCMS):$(OBJSCMS) 
$(CC) -o $(EXESCMS) $(OBJSCMS) $(CFLAG) $(CLINK) $(SYBASELIBS) 
@echo $(EXESCMSNAME) "MAKED!" 

userlist.o: $(DB)/userlist.c 
$(CC) -c  -I$(LIBDIR) $(DB)/userlist.c $(CFLAG) -o $(OBJPATH)/userlist.o 

#lib 
error.o:$(LIB)/error.c 
$(CC) -c  -I$(LIBDIR) $(LIB)/error.c $(CFLAG) -o $(OBJPATH)/error.o 


|
 
gnu make中文手册
http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/index.html

你这makefile 也太混乱了。

from dependencies.ot find a rule to create target checkbin 
从错误上来看
是没法 checkbin ,
简单点说就是checkbin: 下的指令不对。。

|
帮顶 总感觉 这 makefile 不咋专业

|
checkbin:
if [ -d $(BIN_DIR) ]; then 
echo $(BIN_DIR) exist; 
if [ -f $(EXESCMS) ]; then 
rm $(EXESCMS); 
echo rm old $(EXESCMS); 
fi
else 
mkdir $(BIN_DIR); 
echo mkdir $(BIN_DIR) OK; 
fi 

这一段写得太乱,我帮你改一下:

checkbin:
        [ -d $(BIN_DIR) ] || { mkdir $(BIN_DIR); echo mkdir $(BIN_DIR) OK }
        [ -f $(EXESCMS) ] && { rm $(EXESCMS);    echo rm old $(EXESCMS)   }

|
手上没有aix的机器,,没有环境就没有真相

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • 求解makefile问题,makefile.conf的作用?
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 请教根据Makefile.am自动生成Makefile的问题
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • c/c++ iis7站长之家
  • 关于makfile,makefile.in, makefile.am. configure之间的关系
  • win32下编译Linux 下的项目(makefile.am和makefile.in)


  • 站内导航:


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

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

    浙ICP备11055608号-3