藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


如何在linux下通過編譯

請教各位大俠:
gcc xhk_main.o mod_server.o mod_netlib.o mod_api.o  -lsocket -o xhk_main
[color=red][b]/usr/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status
make: *** [xhk_main] Error 1[/b][/color]

在linux下該如何操作,才能編譯通過?
我的makefile文件是這樣的
LIBS=socket
CFLAGS=-g
OBJS_MAIN=xhk_main.o mod_server.o mod_netlib.o mod_api.o
xhk_main:${OBJS_MAIN}
    gcc ${OBJS_MAIN} -l${LIBS} -o xhk_main

如何在linux下通過編譯

去掉 -l$(LIBS)就可以了

#LIBS=socket
CFLAGS=-g
OBJS_MAIN=xhk_main.o mod_server.o mod_netlib.o mod_api.o
xhk_main:${OBJS_MAIN}
gcc ${OBJS_MAIN}  -o xhk_main

如何在linux下通過編譯

gcc xhk_main.o mod_server.o mod_netlib.o mod_api.o  -o xhk_main
collect2: ld terminated with signal 11 [Segmentation fault]
make: *** [xhk_main] Error 1


現在是這樣的錯誤信息,那collect2是什麼東東,
我程序中沒用到呀?

如何在linux下通過編譯

CFLAGS=-g
xhk_main.o:xhk_main.c
gcc -c xhk_main.c

mod_server.o:mod_server.c
gcc -c mod_server.c

mod_netlib.o:mod_netlib.c
gcc -c mod_netlib.c

mod_api.o:mod_api.c
gcc -c mod_api.c

OBJS_MAIN=xhk_main.o mod_server.o mod_netlib.o mod_api.o
xhk_main:${OBJS_MAIN}
gcc ${OBJS_MAIN} -o xhk_main

如何在linux下通過編譯

CC: gcc
SRC:   xhk_main.C mod_server.c mod_netlib.c mod_api.c
OBJS: xhk_main.o mod_server.o mod_netlib.o mod_api.o
xhk_main: $(OBJS)
.c.o:
        $(CC) -o $@ -c $<

如何在linux下通過編譯

collect2是編譯器gcc自己調用的
不是你調用的

另外不使用-lsocket也可以吧
因為libsocket庫可能是默認就連接(與libc一樣)的
我以前寫時就是沒有使用-lsocket
一樣連接成功



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com