当前位置: 技术问答>linux和unix
请问如何修改makefile文件?
来源: 互联网 发布时间:2015-04-05
本文导语: 我下载了一个用源代码方式发布的软件,但要求手动修改makefile文件,作者没有做成自动配置的形式。 我觉得只要改几个变量就可以了,但自己改总是有问题,哪位大侠帮忙改一下。先谢谢了。 我的gcc在/usr/bin目录。 ...
我下载了一个用源代码方式发布的软件,但要求手动修改makefile文件,作者没有做成自动配置的形式。
我觉得只要改几个变量就可以了,但自己改总是有问题,哪位大侠帮忙改一下。先谢谢了。
我的gcc在/usr/bin目录。
Makefile文件内容如下:
## Available defines for building chm_lib with particular options
# CHM_MT: build thread-safe version of chm_lib
# CHM_USE_PREAD: build chm_lib to use pread/pread64 for all I/O
# CHM_USE_IO64: build chm_lib to support 64-bit file I/O
#
# Note: LDFLAGS must contain -lpthread if you are using -DCHM_MT.
#
#CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64
CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64 -g -DDMALLOC_DISABLE
LDFLAGS=-lpthread
INSTALLPREFIX=/usr/local/
CC=gcc-3.2
LD=gcc-3.2
LIBTOOL=libtool
CP=/bin/cp
EXAMPLES=test_chmLib enum_chmLib enumdir_chmLib chm_http extract_chmLib
all: libchm.la
examples: ${EXAMPLES}
%.lo: %.c
${LIBTOOL} ${CC} -c -o $@ $^ ${CFLAGS}
libchm.la: chm_lib.lo lzx.lo
${LIBTOOL} ${LD} -o $@ $^ ${LDFLAGS} -rpath ${INSTALLPREFIX}/lib
install: libchm.la
chmod a+r libchm.la
${LIBTOOL} --mode=install ${CP} libchm.la ${INSTALLPREFIX}/lib
${CP} chm_lib.h ${INSTALLPREFIX}/include
clean:
rm -fr libchm.la *.o *.lo .libs ${EXAMPLES}
test_chmLib: test_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
enum_chmLib: enum_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
enumdir_chmLib: enumdir_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
extract_chmLib: extract_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
chm_http: chm_http.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm -lpthread ${CFLAGS}
我觉得只要改几个变量就可以了,但自己改总是有问题,哪位大侠帮忙改一下。先谢谢了。
我的gcc在/usr/bin目录。
Makefile文件内容如下:
## Available defines for building chm_lib with particular options
# CHM_MT: build thread-safe version of chm_lib
# CHM_USE_PREAD: build chm_lib to use pread/pread64 for all I/O
# CHM_USE_IO64: build chm_lib to support 64-bit file I/O
#
# Note: LDFLAGS must contain -lpthread if you are using -DCHM_MT.
#
#CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64
CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64 -g -DDMALLOC_DISABLE
LDFLAGS=-lpthread
INSTALLPREFIX=/usr/local/
CC=gcc-3.2
LD=gcc-3.2
LIBTOOL=libtool
CP=/bin/cp
EXAMPLES=test_chmLib enum_chmLib enumdir_chmLib chm_http extract_chmLib
all: libchm.la
examples: ${EXAMPLES}
%.lo: %.c
${LIBTOOL} ${CC} -c -o $@ $^ ${CFLAGS}
libchm.la: chm_lib.lo lzx.lo
${LIBTOOL} ${LD} -o $@ $^ ${LDFLAGS} -rpath ${INSTALLPREFIX}/lib
install: libchm.la
chmod a+r libchm.la
${LIBTOOL} --mode=install ${CP} libchm.la ${INSTALLPREFIX}/lib
${CP} chm_lib.h ${INSTALLPREFIX}/include
clean:
rm -fr libchm.la *.o *.lo .libs ${EXAMPLES}
test_chmLib: test_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
enum_chmLib: enum_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
enumdir_chmLib: enumdir_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
extract_chmLib: extract_chmLib.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}
chm_http: chm_http.c
${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm -lpthread ${CFLAGS}
|
没什么大问题,你看看你的gcc是不是3.2版的,或者索性把gcc-3.2改成gcc就能编译成功了.如果你不愿意安装在/usr/local下面的话就改成你自己喜欢的目录就可以了.