2010-12-22 7 views
1

나는 C++ 용 소켓 라이브러리를 사용 해왔다. 다른 정보 : 32 비트 Linux, Codelite 및 GCC 도구 세트. Codelite의 Windows 버전을 사용하여 Windows 용 프로그램을 컴파일 할 수 있기를 원합니다. 제가 사용하고있는 소켓 라이브러리에는 라이브러리의 mingw32 빌드가 없지만 오픈 소스입니다. 그렇다면 어떻게 mingw32를 소켓 라이브러리로 만들면 소스를 사용하여 Windows 빌드를 만들 수 있습니까?mingw 용 리눅스 라이브러리 컴파일

답변

0

새로운 플랫폼으로 이식합니다. :)

오픈 소스이기 때문에 운이 좋을 것입니다. 그 이유는 실제로 포팅하는 것이 불가능하기 때문입니다 (특정 라이센스에 대한 코드 복사본을 얻으려면 $$$을 지불해야합니다. 전체 제품을 다시 작성하십시오).

즐기십시오.

또는 포트가 이미있을 수 있습니다 ... 사용중인 라이브러리의 설명서를 확인하십시오.

+0

라이브러리 문서를 확인했으며 mingw32에 대해 아무 것도 가지고 있지 않습니다. 그렇다면 어떻게 도서관을 "포팅"할 수 있습니까? 어떤 단계를 밟아야합니까? – TheFuzz

+1

@TheFuzz는 소스 코드를 살펴 봅니다. 플랫폼과 관련된 사항을 변경하십시오. 라이브러리 관리자에게 패치를 제출하십시오. –

0

먼저 Linux 전용 라이브러리를 포함하고 있지 않은지 확인해야합니다.

1

대부분의 오픈 소스 리눅스 라이브러리는 make 빌드 시스템으로 구현됩니다 (잼 등 다른 것들과 빌드를위한 커스텀 스크립트). MinGW는 make 유틸리티와 함께 ​​제공되며, mingw32-make.exe입니다. 운이 좋다면 Windows에서 라이브러리를 간단하게 다시 빌드하는 것이 가능할 수도 있습니다.

더 일반적인 시나리오는 빌드하기 전에 프로젝트를 구성해야한다는 것입니다. Windows 셸은 구성하는 데 필요한 스크립팅 요구 사항을 지원하지 않지만 MSYS이라고하는 MinGW 프로젝트의 다른 부분이 있습니다. msys와 필요한 모든 필요한 도구를 설치하면 make를 실행하기 전에 프로젝트를 ./configure 할 수 있습니다.

물론 위의 내용은 라이브러리가 휴대용으로 작성된 경우에만 작동합니다. 리눅스 소켓 구현 (sys/socket.h)과 윈도우 구현 (winsock2.h) 사이에는 약간의 차이가있다. 코드 조각을 편집하여 플랫폼에서 올바르게 버전이 지정되도록하거나 (또는 ​​필요한 모든 종속성도 Windows 용으로 작성 됨) 강제로 적용될 수 있습니다.

또한 라이브러리가 Windows 용으로 이미 빌드되었을 수 있지만 .lib 및 .dll 파일을 생성하는 MSVC와 같은 다른 컴파일러를 사용할 가능성이 있습니다. Mingw는 라이브러리 용으로 .a 파일이 필요하지만 영리한 기능은 import 라이브러리가 필요없이 .dll에 직접 링크 할 수 있기 때문에 Mingw에 대해 빌드되지 않은 기존 Windows 라이브러리를 자주 사용할 수 있습니다. 정적 연결에 도움). .lib를 .a로 변환 할 수있는 도구 dlltool도 있습니다.

작업하고있는 특정 라이브러리에 대한 세부 정보를 제공하면 Win에서 실행하기 위해 수행해야 할 작업을 선택할 수 있습니다.

관련 문제