一个关于编译连接函数库的问题

zqy1999 2004-08-05 11:55:18
各位好,向大家请教一个问题:在Windows下的开发中,如果要使用一个动态连接库,在编译连接时需要库相应的.lib文件,那么在Unix中,编译连接一个*.a库的时候,需要什么类似于.lib的文件吗?

因为本人对Unix下的开发不太熟悉,还望各位朋友帮忙,谢谢。
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tibet 2004-08-06
  • 打赏
  • 举报
回复
应该是的 就和vc里面的.lib应该一样的
wfwater 2004-08-05
  • 打赏
  • 举报
回复
我猜应该是吧,关注
zqy1999 2004-08-05
  • 打赏
  • 举报
回复
那么编译连接器是怎么得到库中各个函数的入口地址的,这些信息放在*.a中了吗?
tibet 2004-08-05
  • 打赏
  • 举报
回复
不需要

CC= gcc
CXX = g++
DEBUG = -g #-Wall

INCLUDES = -I. -I../common
LIBS = ../common/libcommon.a -lsocket -lrt -lpthread -lclntsh

SRCS = main.cpp
OBJS = main.o
PROG = main

CFLAGS = $(DEBUG) $(INCLUDES)
CPPFLAGS = $(DEBUG) $(INCLUDES)

all: $(PROG)

$(PROG):$(OBJS) ../common/libcommon.a
$(CXX) $(CPPFLAGS) -o $(PROG) $(OBJS) $(LIBS)

clean:
rm -f $(OBJS)
rm -f $(PROG)
zqy1999 2004-08-05
  • 打赏
  • 举报
回复
谢谢tibet(大yi巴狼)。
可能是我没有讲清楚。简单的编译连接我还是知道的,我是想知道Linux/Unix下连接库时不需要什么导入文件吗?
tibet 2004-08-05
  • 打赏
  • 举报
回复
上面是个Makefile
tibet 2004-08-05
  • 打赏
  • 举报
回复
CC= gcc
CXX = g++
DEBUG = -g
INCLUDES = -I. -I../includes

SRCS = log.c
OBJS = log.o

CFLAGS = $(DEBUG) $(INCLUDES)
CPPFLAGS = $(DEBUG) $(INCLUDES)

all:libcommon.a

libcommon.a:$(OBJS)
ar cruv libcommon.a $(OBJS)
ranlib libcommon.a

clean:
rm -f $(OBJS)
rm -f libcommon.a

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧