라이브러리 사용에 관해서..
큰깃
질문 제목 :라이브러리 사용에 관해서..공유라이브러리, 정적라이브러리에 사용방법에 관해서입니다.질문 내용 :공유라이브러리를 동적으로 불러와서 사용하도록 하는 프로그램을 만들었고 잘 작동합니다.
정적라이브러리를 사용하는 프로그램도 만들어 보았으며 사용법을 이미 알고있습니다.저는 동적으로 공유라이브러리를 호출하여 공유라이브러리안의 함수를 사용하려고 합니다.그런데 공유라이브러리의 함수에 기능을 추가할때 정적 라이브러리에 있는 함수를 쓰면 처리가 편할 것 같습니다.그래서 정적라이브러리를 만들어놓고 공유라이브러리를 컴파일할때
28 lib_dir_flags = -l$(oracle_home)/lib \
29 -l/usr/lib \
30 -l$(my_lib) \
31 -l/home/agape/libcfgsys.a --사용하고자 하는 정적 라이브러리...
34 $(cxx) $(cxxflags) -fpic -c $ $(inc_dir_flags) $(lib_dir_flags) -ldl
35 $(cxx) -shared -w1,-soname,libmysutff.so.1 -o libmysum.so.1.0.1 mysum.o
36 $(cxx) print_sum_dl.cpp -o print_sum_dl $(lib_dir_flags) $(inc_dir_flags) $(libs) $(cxxflags)
이와 같이 추가하여 컴파일 하였습니다. 물론 공유라이브러리의 소스에 정적라이브러리를 만든 해더도 추가하였습니다.그러나 오류가 납니다.
undefined symbol: _z23getprivateprofilestringpcs_s_s_ls_ 이와 같은 오류입니다.getprivateprofilestring 이것은 c에서 환경파일 같은 것을 파싱하기 쉽게 정의해놓은 함수입니다. 다른언어에서 지원하는 기능인데 이를 직접 구현해놓았죠. 그러나 먹히지가 않네요..다른곳에서는 잘 쓰던 정적라이브러리인데 왜 공유라이브러리에서 가져올려고하면 못하는것인가요?