mysql라이브러리를 정적으로 링크할려고 합니다.
글쓴이: rokmn3309 / 작성시간: 수, 2005/03/30 - 5:27오전
안녕하세요..
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 옵션을 주고 해봤을때는 나온 에러와 더불어 다른 에러들이 많이 나왔습니다.
Forums:


저의 MakeFile입니다. static으로 컴파일하고 있구요 다른점은
저의 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)댓글 달기