OpenSSL 크로스 컴파일시에...
OpenSSL 을 arm 용으로 크로스 컴파일을 하려고 하는데,
에러가 발생을하네요.
./Configure linux-elf-arm
으로 실행 시켰어요..
--------------------------------------------------------------------------
if [ "linux-shared" = "hpux-shared" -o "linux-shared" = "darwin-shared" ] ; then \
gcc -o openssl -DMONOLITH -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o ocsp.o ../libssl.a ../libcrypto.a ; \
else \
LD_LIBRARY_PATH=..$LD_LIBRARY_PATH \
gcc -o openssl -DMONOLITH -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o ocsp.o -L.. -lssl -L.. -lcrypto ; \
fi
../libcrypto.a(dso_dlfcn.o) In function `dlfcn_load'
dso_dlfcn.o(.text+0x26) undefined reference to `dlopen'
dso_dlfcn.o(.text+0x86) undefined reference to `dlclose'
dso_dlfcn.o(.text+0xad) undefined reference to `dlerror'
../libcrypto.a(dso_dlfcn.o) In function `dlfcn_bind_var'
dso_dlfcn.o(.text+0x137) undefined reference to `dlsym'
dso_dlfcn.o(.text+0x162) undefined reference to `dlerror'
../libcrypto.a(dso_dlfcn.o) In function `dlfcn_bind_func'
dso_dlfcn.o(.text+0x227) undefined reference to `dlsym'
dso_dlfcn.o(.text+0x252) undefined reference to `dlerror'
../libcrypto.a(dso_dlfcn.o) In function `dlfcn_unload'
dso_dlfcn.o(.text+0x3eb) undefined reference to `dlclose'
collect2 ld returned 1 exit status
make[1] *** [openssl] 오류 1
make[1] 나감 `/root/swim/openssl-0.9.7c/apps' 디렉토리
make *** [sub_all] 오류 1
----------------------------------------------------------------
위와 같은 에러가 나오네요.
그냥 gcc로 linux-pentuim으로 컴파일할때는 오류 없이 잘 되는데..
arm용으로 컴파일 하면 컴파일러에 상관없이 동일한 에러가 나오네요..
버전은 0.9.7c입니다...
libcryto.a는 /usr/lib안에 있는데... 오류가 발생하네요..
답변 부탁드립니다.~~ oops
no-shared 옵션을 줘보세요. 아무래도 shared 라이브러를 링크
no-shared 옵션을 줘보세요. 아무래도 shared 라이브러를 링크하는거 같네요.
screen + vim + ctags 좋아요~
-ldl 옵션으로 해결했습니다.
감사 합니다~
-ldl옵션으로 해결했습니다. ^^
그런데, arm 용 컴파일러로 연결을 하니까..
이번엔 이런 에러가 발생하네요..ㅡ.ㅡ;;;
/usr/local/Tynux/bin/arm-linux-gcc -o msn test.o msn.o msn_md5c.o msn_net.o msn_str_util.o msn_connect.o msn_send_msg.o msn_recv_msg.o msn_list.o msn_sb.o protocols_commands.o -L/usr/local/SSL/lib -I/usr/local/SSL/include
test.o In function `main'
test.o(.text+0x18c) undefined reference to `SSL_library_init'
test.o(.text+0x190) undefined reference to `SSLv23_method'
test.o(.text+0x19c) undefined reference to `SSL_CTX_new'
test.o(.text+0x1ac) undefined reference to `SSL_new'
test.o(.text+0x1d8) undefined reference to `SSL_set_fd'
test.o(.text+0x1e0) undefined reference to `SSL_connect'
test.o(.text+0x21c) undefined reference to `SSL_write'
test.o(.text+0x264) undefined reference to `SSL_read'
collect2 ld returned 1 exit status
make[1] *** [msn] 오류 1
make[1] 나감 `/root/swim/protocols/msnModule' 디렉토리
make *** [new] 오류 2
-lssl옵션을 붙이면 알수 없는 옵션이라는 메시지가 발생합니다.
(물론, 컴파일러를 gcc로 봐꾸면 에러없이 동작합니다.)
-L/usr/local/SSL/lib 로 연결 시켜 주어도 에러가 발생합니다.
라이브러리는 /usr/local/SSL/lib에 설치되어 있네요..
에궁... 라이브러리 설치하나두 쉽지 않네요...
☆ OverTheRainbow ☆
해결했습니다..^^
*^^*
혼자 이것 저것 검색하고 알아보던 중 찾았습니다..^^
먼저 처음에 에러 난 것은 -ldl 옵션을 추가함으로써 해결하였고,
그 후 ssl라이브러리가 연결 되지 않는 것을
arm-linux-gcc -print-search-dirs
를 통해서 라이브러리를 링크하는 곳을 확인 하였구요,
-I/usr/local/SSL/include를 컴파일시에 추가했습니다.
라이브러리 링크를 하기위해 찾는 디렉토리에
openssl라이브러리인 libssl.a 와 libcrypto.a 를 추가하였습니다.
그리고 나서 Makefile 에서
라이브러리에 -lssl -lcrypto 를 추가하여 해결했습니다.
*^^*
도움을 주신 분께 감사드립니다..^_^
그럼 이만...
☆ OverTheRainbow ☆
댓글 달기