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

关于makefile的问题?

    来源: 互联网  发布时间:2015-03-24

    本文导语:  我的程序里面include了,这2个头文件 怎么样在makefile里写啊? 谢谢各位了。 | 我的程序里面include了,这2个头文件 编译带参数: -lpthread -lghttp | 假设,这2个头文件在路径/usr/my/include下 ...

我的程序里面include了,这2个头文件
怎么样在makefile里写啊?
谢谢各位了。

|
我的程序里面include了,这2个头文件
编译带参数:
-lpthread -lghttp

|
假设,这2个头文件在路径/usr/my/include下
加编译参数:
-I/usr/my/include

可能的cc语句如下:

cc -g -c -I/usr/my/include a.c

|
试试看这个:
#Makefile

####################################################################
# Customising :
#
# Adjust the following if necessary; EXECUTABLE is the target
# executable's filename, and LIBS is a list of libraries to link in
# (e.g. alleg, stdcx, iostr, etc). You can override these on make's
# command line of course, if you prefer to do it that way.
####################################################################
PACKAGE := mysqlsync
VERSION := 1.0
EXECUTABLE := mysqlsync  # EXE file
TARGETLIB :=             # library file
INCLUDES := -I/usr/include/mysql
LIBS += -L/usr/lib/mysql -lmysqlclient #-lm
DEMOS := download.c upload.c test.c docreate.c
DISTFILES := $(TARGETLIB)
DISTFILES += $(DEMOS)

exclude_from_build := $(DEMOS)
exclude_from_mklib := $(DEMOS)   # for create library, filter out the main(), and so on.

profiling := off       # enable profiling (eg: use 'gprof')

CFLAGS := -Wall
CFLAGS += -DLINUX
CFLAGS += -I/usr/include/mysql

####################################################################
# You shouldn't need to change anything below this point. 
####################################################################
srcdir = .
top_srcdir = .
top_builddir = .
distdir := $(PACKAGE)-$(VERSION)_$(shell date +%y%m%d_%H%M%S)

# for compile
CC := gcc

override CFLAGS += $(patsubst %,-I%,$(subst :, ,$(VPATH)))
ifeq "$(strip $(profiling))" "on"
    build:  CFLAGS += -pg # enable profiling
endif
mklib:  CFLAGS += -fPIC   # for create library

SOURCES := $(wildcard *.c)
BUD_OBJS := $(patsubst %.c,%.o,$(filter-out $(exclude_from_build),$(SOURCES)))
LIB_OBJS := $(patsubst %.c,%.o,$(filter-out $(exclude_from_mklib),$(SOURCES)))

vpath %.c src/:Src/:SRC/
vpath %.h header/

# for create library
AR := ar
ARFLAGS := r

# for release library
TAR = gtar
GZIP_ENV = --best

########################################################
# rules
########################################################
all: build

build: $(EXECUTABLE)

mklib: $(TARGETLIB)

rebuild:clean build

remklib:clean cleanlib mklib

$(EXECUTABLE): $(BUD_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(INCLUDES)

$(TARGETLIB): $(LIB_OBJS)
$(AR) $(ARFLAGS) $@ $^

dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)

distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; 
top_distdir=`cd $(distdir) && pwd`; 
distdir=`cd $(distdir) && pwd`
@for file in $(DISTFILES); do 
    cp -pr $(srcdir)/$$file $(distdir)/$$file; 
done

########################################################
# depends
########################################################

#depends.d:$(SOURCES)
# $(CC) -MM $^ > $@
#include depends.d

mkdep: %.d

%.d: %.c
set -e; $(CC) -MM  $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $ $@; 
                [ -s $@ ] || rm -f $@

include $(SOURCES:.c=.d)

########################################################
# clean
########################################################
cleanall: cleanbin cleanlib cleandep

clean: cleanbin

cleanbin:
rm -f $(EXECUTABLE) *.o *~

cleanlib:
rm -f *.a *.o *~

cleandep:
rm -f *.d


.PHONY: all build mklib rebuild remklib 
dist distdir mkdep 
cleanall clean cleanbin cleanlib cleandep

|
自己写个简单的吧,上面的makefile文件是用专用的工具写出来的。

    
 
 

您可能感兴趣的文章:

  • 求解makefile问题,makefile.conf的作用?
  • 请教根据Makefile.am自动生成Makefile的问题
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • 关于makefile的问题。一个makefile如何生成两个可执行文件。
  • 亟待解决的问题!Makefile问题
  • 关于makefile文件的问题
  • makefile include的问题
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀? iis7站长之家
  • 关于多层Makefile编译的问题
  • 初写MAKEFILE遇到问题,麻烦大家帮忙。
  • 多个Makefile合并的问题
  • 急!求助,关于makefile的问题
  • 关于makefile 中NUL报错及遗漏“endif”的问题
  • 用mkmf生成makefile的问题
  • 一个 makefile 问题
  • 问一个Makefile的问题
  • 关于makefile的问题,回的请进
  • makefile 简单问题
  • makefile 1254-004问题
  • Makefile的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • [test@localhost ~]$ cat <makefile >catfile 跟cat > catfile <makefile是一样的吧?
  • 关于makfile,makefile.in, makefile.am. configure之间的关系
  • win32下编译Linux 下的项目(makefile.am和makefile.in)
  • make -f makefile 时提示 Make: Must be a separator on rules line 5. Stop. 为什么,makefile 如下
  • 请问如何写动态的Makefile,或是有什么好的Makefile写法?麻烦分享一下,谢谢
  • Makefile :scripts/Makefile.build:49: *** CFLAGS was changed in "/opt/zaptel-1.4.


  • 站内导航:


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

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

    浙ICP备11055608号-3