Re: [问题] 一个make的error message

楼主: e12518166339 (耐纶)   2013-04-05 14:23:15
※ 引述《e12518166339 (耐纶)》之铭言:
: 我在我所要编译的资料夹下编译时产生如下之错误
: libeserv/misc.c: In function “DBG”:
: libeserv/misc.c:13:22: 错误: parameter “fmt” set but not used [-Werror=unused-but-set-parameter]
: cc1: all warnings being treated as errors
: make: *** [libeserv/misc.o] Error 1
: 我后来进到Makefile将-Werror给注解掉
: 可是产生另一个错误
: libeserv/misc.c: In function “DBG”:
: libeserv/misc.c:13:22: 警告: parameter “fmt” set but not used
: [-Wunused-but-set-parameter]
: gcc -O0 -Wall -Wextra -D_POSIX_SOURCE -D_BSD_SOURCE -g -std=gnu99 -c -o
: main.o main.c
: gcc -O0 -Wall -Wextra -D_POSIX_SOURCE -D_BSD_SOURCE -g -std=gnu99 -c -o
: cgi_custom.o cgi_custom.c
: gcc -o eserv -O0 -Wall -Wextra -D_POSIX_SOURCE -D_BSD_SOURCE -g -std=gnu99
: -lpthread libeserv/mempool.o libeserv/hash.o libeserv/io.o libeserv/http.o
: libeserv/request.o libeserv/analysis.o libeserv/entry.o libeserv/cgi.o
: libeserv/misc.o main.o cgi_custom.o
: libeserv/entry.o: In function `start_thread':
: /home/nylon7/GDB_len_C/eserv/libeserv/entry.c:13: 未定义参考到“pthread_create
: ”
: collect2: 错误: ld 回传 1
: make: *** [eserv] Error 1
: 我的想法只是单纯把warning改成无视
: 可是却产生了其他错误
: 大致上是如此
各位前辈说问题出在-lpthread
但是我的原生Makefile档是有这个参数的,附上我的makefile
1 PROG = eserv
2
3 CC = gcc
4
5 CFLAGS = -O0 -Wall -Wextra -Werror\
6 -D_POSIX_SOURCE -D_BSD_SOURCE -g \
7 -std=gnu99
8 # -D_DEBUG
9 LDFLAGS = -lpthread
10
11 OBJS = \
12 libeserv/mempool.o \
13 libeserv/hash.o \
14 libeserv/io.o \
15 libeserv/http.o \
16 libeserv/request.o \
17 libeserv/analysis.o \
18 libeserv/entry.o \
19 libeserv/cgi.o \
20 libeserv/misc.o \
21 main.o \
22 \
23 cgi_custom.o
24
25 all: $(PROG)
26
27 $(PROG): $(OBJS)
28 $(CC) -o $(PROG) $(CFLAGS) $(LDFLAGS) $(OBJS)
29
30 clean:
31 rm -f $(PROG) $(OBJS)
弄了好久没能搞定希望有人能解惑
感恩各位
作者: alongalone (沿着孤单的路)   2013-04-05 17:00:00
你知道你 libpthread.a放在哪里嘛
作者: askacis (ASKA)   2013-04-05 17:25:00
你的PROG要先跑OBJS,产生OBJS的时候就要带LDFLAGS进去了不是到最后产生执行档的时候才带进去~仔细看已经产生entry.o了~上面我脑残请无视~~Orz
作者: yuskeb (我想做一个好人)   2013-04-05 23:34:00
试试看 LDFLAGS = -lpthread 改成 LDFLAGS = -pthread
作者: buganini (霸格尼尼)   2013-04-06 04:49:00
试试 $(CC) $(CFLAGS) $(OBJS) -o $(PROG) $(LDFLAGS)
楼主: e12518166339 (耐纶)   2013-04-07 17:58:00
改成 LDFLAGS = -pthread 解决了 感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com