2017-11-28 18 views
0

현재 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자가 시스템을 구축하지 못하게 할 것입니다.

답변

0
우리가

내가 그러나 POLIBPelles C 분포, 리눅스에 대한 MS LIB 클론 휴대용 잘 모르는 것 같아요 우리의 리눅스 시스템에서 전체 일을 교차 컴파일하고 싶습니다

작은, 무료입니다 자체 장착되어 MS 도구와 호환됩니다. kernel32.dll 이외의 종속성이 없으므로 Wine 아래에서도 실행됩니다.