2011-01-17 7 views
1

Visual Studio로 컴파일 할 수있는 많은 오픈 소스 라이브러리가 있습니다. 나는 리눅스에서 Windows로 프로그램을 이식하고 있지만, 그것은 많은 라이브러리에 달려있다. 라이브러리에 관한 베스트 프랙티스가 Windows에 무엇인지 모릅니다.Windows에서 소스 라이브러리를 어떻게 열어야합니까?

Linux에서 이러한 라이브러리는 일반적으로 배포의 일부입니다. 예를 들어, Debian에서 sqlite을 사용하려면 libsqlite3-dev을 설치하기 만하면 포함 파일과 라이브러리 (정적 및 동적)가 자동으로 설치되어 프로그램에서 사용할 수 있습니다.

당신이 당신의 유통 공급 이외의 다른 버전을해야하는 경우 ~/include~/lib에 설치, 홈 디렉토리에 컴파일하고 컴파일러의 검색 경로에 해당 디렉토리를 포함하도록 적절한 environment variables을 설정할 수 있습니다.

Windows에서 소스로 배포되는 라이브러리를 사용하는 가장 좋은 방법은 무엇입니까? 정적으로 링크하는 것이 아니라 동적으로 링크하는 경우 라이센스 요구 사항이 충족되면 재배포를 용이하게하기 위해 필요한 DLL을 출력 디렉토리에 쉽게 복사 할 수 있습니까?

답변

1

옵션 1 - Windows 용 바이너리 배포판이있는 프로젝트/DevStudio에서 빌드하지 마십시오.

예. OpenSSL.

OpenSSL과 같은 프로젝트는 자신의 폴더에 가장 잘 다운로드되고 자체 스크립트를 사용하여 작성됩니다. OpenSSL은 일반적으로 Windows 빌드에서 C : \ OpenSSL에 설치되므로 하나는 완료됩니다. C : \ OpenSSL \ include와 C : \ OpenSSL \ lib를 프로젝트 환경에 추가하면 OpenSSL 헤더와 Lib에 액세스 할 수 있습니다. C : \ OpenSSL \ bin에서 프로젝트 스테이징 폴더 (보통 SolutionDir \ Debug 또는 Release)로 복사해야하는 실제 dll 파일.

일단 OpenSSL을 구축하는 번거 로움을 겪은 후에는 다시하지 않으려 고합니다. 또는 바이너리 배포판을 다운로드 한 경우, 최상의 결과 만 남았습니다. 다른 바이너리 배포판을 사용하여 Visual Studio 빌드 환경을 적절하게 설정할 수 있습니다.

옵션 2 - Visual Studio 프로젝트를 쉽게 만들 수있는 (또는 이미 소유하고있는) 작은 라이브러리입니다. Lua와 sqllite는이 범주에 속합니다. 충분히 작은 프로젝트의 경우 하위 폴더의 솔루션에 추가하는 것이 불편하지 않습니다. 이렇게하면 출력물을 솔루션 출력 폴더에 직접 생성 할 수 있으므로 솔루션에 사전 빌드 바이너리 파일을 번들로 제공 할 필요가 없으므로 프로젝트를 다른 사람들과 훨씬 쉽게 공유 할 수 있습니다.

옵션 3 - 대안으로 사용자는 오픈 소스 프로젝트 제품에 대한 표준화 된 폴더를 만들 수 있습니다. C : \ oss \ include, c : \ oss \ lib, c : \ oss \ bin 등을 만들고이 경로를 DevStudios lib에 추가하고 경로를 포함하고 각각을 빌드 할 때 c : \ oss \ bin을 시스템 PATH 변수에 추가하십시오 OSS 프로젝트에서 해당 위치에 적절한 파일을 복사하십시오.

편리하게도이 설정을 사용하면 두 번째 PC에서 빌드 환경을 복제하는 것이 어려워 지므로 전체 C : \ oss 트리를 소스 제어에 보관할 수도 있습니다.

+0

나는 일을 훌륭하게 또는 적어도 표준화 된 방법이 있었으면 좋겠지 만 이것은 모든 가능성을 커버하는 것 같다. –

+0

Windows 환경에서 유닉스와 가장 유사한 아날로그 바이너리 만 WinSxS 폴더입니다.이 라이브러리는 공인 된 서명 된 바이너리 라이브러리를 여러 가지 다른 버전을 나란히 배치 할 수있는 방식으로 배포하는 완전히 놀라운 방법입니다 응용 프로그램 (및 개발자)은 자신의 필요에 맞는 버전을 선택할 수 있습니다. –

+0

그러나 유감스럽게도 Windows 용 바이너리 빌드, (b) WinSxS 포함에 대한 출력물의 디지털 서명에 필요한 인증서 가져 오기, (c) 해당 작업을 수행 할 수있는 OSS 프로젝트가 설정되지 않은 것 같습니다. –

1

가장 쉬운 방법은 사용자 고유의 DLL을 만들어 프로그램 디렉토리에 포함시키는 것입니다.

예 조금 더 많은 공간을 사용하지만 요즘은 HD가 크기 때문에 호환되지 않는 버전 (DLL 지옥)의 두통을 피할 수 있습니다. Windows는 또한 여러 컴파일러로 빌드 된 libs 버전에서 몇 가지 주름을 겪습니다. 따라서 자신의 빌드를 선적하는 것이 안전합니다.

+0

그러나 라이브러리 소스를 어디에 두겠습니까? 개별적으로 또는 프로그램과 함께 컴파일합니까? –

+0

dev 컴퓨터에서 원하는 곳으로 라이브러리 소스를 언팩하십시오. 프로그램 파일보다는 공간없이 dir을 사용하는 것이 더 쉽습니다. 나는 c : \ soft \ name_of_lib를 사용한다. 그러나 그것은 중요하지 않다. 그들의 dir에서 그들을 빌드 –

관련 문제