lapack 라이브러리를 설치했는데.. /usr/lib에 liblapack.a 라는 파일이 있는데.. liblapack.so.3 이라는 동적 라이브러리 링크를 만드려면 어떻게 해야 하나요?? 그냥 cp liblapack.a liblapack.so.3 이라고 하니까.. 헤데 파일이 잘못되었다고 하면서 안 되더군요..
.a와 .so는 따로 만들어지는 파일입니다. 이름만 바꿔서 쓸 수는 없습니다. 빌드할 때 so를 만드는 옵션을 주거나 so가 포함된 바이너리를 설치하세요.
/usr/local/lib 밑에 liblapack.a가 깔려있다면 다음과 같이 하면 됩니다.
# cd /usr/local/lib # mkdir obj # ar x ../liblapack.a # g77 -shared -Wl,-export-dynamic *.o -o ../liblapack.so.3.0.3 -Wl,-soname,liblapack.so.3 # cd .. # rm -fr obj # vi /etc/ld.so.conf /usr/local/lib # ldconfig -v
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
.a와 .so는 따로
.a와 .so는 따로 만들어지는 파일입니다. 이름만 바꿔서 쓸 수는 없습니다. 빌드할 때 so를 만드는 옵션을 주거나 so가 포함된 바이너리를 설치하세요.
/usr/local/lib 밑에
/usr/local/lib 밑에 liblapack.a가 깔려있다면
다음과 같이 하면 됩니다.
# cd /usr/local/lib
# mkdir obj
# ar x ../liblapack.a
# g77 -shared -Wl,-export-dynamic *.o -o ../liblapack.so.3.0.3 -Wl,-soname,liblapack.so.3
# cd ..
# rm -fr obj
# vi /etc/ld.so.conf
/usr/local/lib
# ldconfig -v
댓글 달기