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