mysql라이브러리를 정적으로 링크할려고 합니다.

rokmn3309의 이미지

안녕하세요..
libmysqlclient.a 파일을 링크 할려고 하는데 생각처럼 되지가 않는군요..
동적으로 링크는 잘 됩니다만은 정적으로 컴파일해 볼려고 하면은 에러가 발생하고 있습니다.
mysql을 설치시에 openssl관련 옵션은 다주고 설치했습니다.

컴파일은 다음과 같이 했습니다.

gcc -static -o mysql_test mysql_test.c -I/data/local/mysql-4.0.20/include  -L/data/local/mysql-4.0.20/lib/mysql -lmysqlclient -lz -lcrypt -ldl

에러는 크게 두분류로 나왔습니다.

/data/local/mysql-4.0.20/lib/mysql/libmysqlclient.a(mf_pack.o)(.text+0x701): In function `expand_tilde':
: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking


/data/local/mysql-4.0.20/lib/mysql/libmysqlclient.a(viossl.o)(.text+0x66): In function `sslaccept':
: undefined reference to `SSL_new'

-lssl 옵션을 주고 해봤을때는 나온 에러와 더불어 다른 에러들이 많이 나왔습니다.

익명 사용자의 이미지

저의 MakeFile입니다. static으로 컴파일하고 있구요 다른점은 크게

없고 static의 옵션 위치만 다르군요.

   1 #MakeFile by Jang Seung han In Spaceinternational
      2 #CDTower Linux Server ver 3.1
      3
      4 .SUFFIXES = .cpp .o
      5
      6 OBJECT = CDTSSvcx.o BroadCastServer.o JKHeader.o TransferProgram.o ClientProgram.o LCDFileServer.o LDDFileServer.o ManagerProgram.o
      7
      8 INC = -I/usr/local/mysql/include/mysql
      9 MYSQL_LIB = -L/usr/local/mysql/lib/mysql
     10 LIB = -lmysqlclient -lpthread
     11 TARGET     = cdt3_gdb
     12 TARGET_DEMON     = cdt3_demon
     13 SRCS = $(OBJECT:.o=.cpp)
     14 CC = g++
     15 CFLAGS = -g -c -D_REENTRANT -D_PTHREADS
     16
     17 all : $(TARGET) $(TARGET_DEMON)
     18 g   : $(TARGET)
     19 d   : $(TARGET_DEMON)
     20
     21 $(TARGET) : $(OBJECT)
     22     $(CC) -g -D_REENTRANT -D_PTHREADS -o $(TARGET) $(OBJECT) $(MYSQL_LIB) $(LIB)
     23
     24 $(TARGET_DEMON) : $(OBJECT)
     25     $(CC) -D_REENTRANT -D_PTHREADS -o $(TARGET_DEMON) $(OBJECT) $(MYSQL_LIB) $(LIB) -static -lz
     26
     27 .cpp.o :
     28     $(CC) $(INC) $(CFLAGS) $<
     29
     30 clean :
     31     rm -rf $(OBJECT) core
     32
     33 dep :
     34     gccmakedep $(INC) $(SRCS)