현재 Visual Studio에서 크로스 플랫폼 (linux, osx, w32) 프로젝트의 W32 빌드 프로세스를 mingw로 전환 중입니다.MinGW 도구로 MSVC 가져 오기 라이브러리 생성
우리가 직면 한 문제 중 하나는 타사 프로젝트가 링크 할 수있는 동적 라이브러리 (foo.dll
)가 프로젝트에서 생성된다는 것입니다. W32/MSVC에서이 작업을 수행하려면 가져 오기 라이브러리가 필요합니다 (foo.lib
).
foo.def
파일을 사용하기 위해
gcc -shared -o foo.dll foo-*.o -Wl,--output-def,foo.def
, 워드 프로세서 사용 말해 :
이제 the documentation 다음은이 라이브러리를 가져 오기에 필요한 모든 정보를 보유하고 .DEF 파일을 만들 꽤 쉽게 마이크로 소프트 LIB 도구는 그것에서 foo.lib
를 구축 : 이것은 분명히 가지고 (의 일부)을 저를 필요로
lib /machine:i386 /def:testdll.def
MSVC 빌드 컴퓨터에 설치되어 있어야합니다. 그러나 우리는 리눅스 시스템에서 (심지어 일부 CI에서도) 전체를 크로스 컴파일하고 싶습니다. MSVC를 설치하는 것이 다소 지루합니다.
그래서 파일을 foo.lib
가져 오기 라이브러리로 변환 할 수있는 고유 한 MinGW 방법이 있는지 궁금합니다.
는 (우리는 결국 만 MSVC 사용자가 가 가져 오기 라이브러리를 필요로하는 것이 그들이 손에 준비 lib
도구있을 것이라는 점을 알고있다. 그러나 우리는 항상 foo.def
전환의 foo.lib
파일을 제공 한 이후 제 3자가 시스템을 구축하지 못하게 할 것입니다.