[問題] Undefined Reference library中的function

看板C_and_CPP (C/C++)作者 (外星人)時間14年前 (2012/04/07 00:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) ubuntu 11.10 \n \l 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) GCC OpenSSL和網路下載的函示庫 問題(Question): 網路下載的程式compile完後的library在link的時候出現undefined Reference 該library中的function 餵入的資料(Input): 無餵入資料 預期的正確結果(Expected Output): link後可以使用該library中的function 錯誤結果(Wrong Output): undefined reference to 該library中的function 程式碼(Code):(請善用置底文網頁, 記得排版) 該library compile是libbd_api.a 以下是該library的makefile OS_NAME=linux SSL_LIB=/home/oliwad2/tree5/trunk/ns-allinone-2.35/ns-2.35/ssl/ SSL_INCLUDE=-I/home/oliwad2/tree5/trunk/ns-allinone-2.35/ns-2.35/ssl/include BD_DIR=. COMMON_DIR=../common BD_DIST = $(BD_DIR)/$(OS_NAME) BD_INCLUDE=$(BD_DIR)/src BD_OBJDIR=$(BD_DIR)/$(OS_NAME)/obj BD_LIBDIR=$(BD_DIR)/$(OS_NAME)/lib BD_BINDIR=$(BD_DIR)/$(OS_NAME)/bin SRC=$(BD_DIR)/src/bd_api.c HDR=$(BD_INCLUDE)/bd_api.h OBJ=$(BD_OBJDIR)/bd_api.o BD_LIB=$(BD_LIBDIR)/libbd_api.a BD_ERROR_HDR=$(COMMON_DIR)/error.h MISC_SRC=$(BD_DIR)/src/bd_api_misc.c MISC_HDR=$(BD_INCLUDE)/bd_api_misc.h MISC_OBJ=$(BD_OBJDIR)/bd_api_misc.o BD_CERT_SRC=$(COMMON_DIR)/common.c BD_CERT_HDR=$(COMMON_DIR)/common.h BD_CERT_OBJ=$(BD_OBJDIR)/common.o BD_SIG_SRC=$(BD_DIR)/src/bd_sig.c BD_SIG_HDR=$(BD_INCLUDE)/bd_sig.h BD_SIG_OBJ=$(BD_OBJDIR)/bd_sig.o BD_TEST_SRC=$(BD_DIR)/src/bd_test.c BD_TEST_HDR=$(BD_INCLUDE)/bd_test.h BD_TEST_OBJ=$(BD_OBJDIR)/bd_test.o BD_TEST_BIN=$(BD_BINDIR)/bd_test BD_TEST_MISC_SRC=$(BD_DIR)/src/bd_test_misc.c BD_TEST_MISC_HDR=$(BD_INCLUDE)/bd_test_misc.h BD_TEST_MISC_OBJ=$(BD_OBJDIR)/bd_test_misc.o CC=gcc INCLUDES= $(SSL_INCLUDE) -I$(BD_INCLUDE) -I$(COMMON_DIR) LIB=-lcrypto -lm CFLAGS=-g -O2 -Wall -L $(SSL_LIB) LDFLAGS= AR=ar ARFLAG=-vru all: $(BD_TEST_BIN) $(BD_LIB) lib: $(BD_LIB) $(BD_LIB): $(OBJ) $(MISC_OBJ) $(BD_CERT_OBJ) \ $(BD_SIG_OBJ) @if [ ! -d $(BD_LIBDIR) ]; then mkdir $(BD_LIBDIR); fi $(AR) $(ARFLAG) $@ $? 補充說明(Supplement): 有利用nm 去檢查該library 有顯示如下 00000730 T bd_new_member (bd_new_member是該library下我想使用的function) 我link的方式(假設要用到該library的檔名為testfile)是gcc testfile.c -lbd_api -lcrypto -L\放置libbd_api.a的資料夾 -L\放置OpenSSL library的資料夾 不知道是當初這個library makefile的問題還是我link的方式有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.26.85
文章代碼(AID): #1FVn_acd (C_and_CPP)
文章代碼(AID): #1FVn_acd (C_and_CPP)