반응형

이 library 말하는 건 아니고...

 

이런 일이 없으면 좋겠지만... .dll 파일로부터 이를 사용하기 위한 .lib 파일을 생성해야 할 때가 있다.

이럴 때의 정석(?)은 dumpbin.exe을 돌린 결과에서 일부 내용을 추출해서 lib.exe를 실행하는 것...

 

예를 들어, dumpbin.exe의 결과가 아래와 같이 나왔다면...

dumpbin.exe /exports mkl_rt.dll
[중간 생략]
       18796 number of functions
       18796 number of names

    ordinal hint RVA      name
          1    0 000060E0 CAXPBY
          2    1 00006600 CAXPY
          3    2 00006F80 CAXPYI
          4    3 00006890 CAXPY_DIRECT
          5    4 00134CE0 CBBCSD
          6    5 001353E0 CBDSQR
          7    6 00007460 CCOPY
          8    7 00007990 CDOTC
          9    8 00008070 CDOTCI
         10    9 000085A0 CDOTU
[이하 생략]

 

이를 이용해서 아래와 같은 mkl_rt.def 파일을 만든 뒤...

 

LIBRARY mkl_rt 
EXPORTS 
CAXPBY @1 
CAXPY @2 
CAXPYI @3 
CAXPY_DIRECT @4 
CBBCSD @5 
CBDSQR @6 
CCOPY @7 
CDOTC @8 
CDOTCI @9 
CDOTU @10

 

아래와 같이 실행해서 .lib 파일을 만드는 것이다.

 

lib.exe /machine:x64 /def:mkl_rt.def

 

그리고, 이 .def 파일을 만드는 과정을 어느 현자께서 아주 깔끔하게 만들어서 배포해주셨다.

 

 

이 배치파일을 활용하면 .def 파일을 손쉽게 만들 수 있다.

 

그런데, .def 파일은 다른 방법으로도 만들 수 있다.

바로 MinGW-64에 포함된 gendef.exe를 활용하는 것.

 

gendef.exe mkl_rt.dll

 

어떤 방법이든 결과는 동일하다.

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band