2016-10-17 5 views
-3

이해가 안됩니다. 왜 라이브러리를 빌드하는 데 cmake가 필요합니까? 미안 해요, 내 질문에 어리석은 경우,하지만 Widnows 일부 라이브러리를 사용할 필요가 무엇을 내가 선택한 라이브러리를 빌드 및/또는 cmake 함께 컴파일 할 필요가 무엇 .. 그것을 위해 무엇입니까? 내가 왜 내 프로젝트에 필요한 것들을 "경로"에 # 포함시킬 수 없는지, 그것이 내 프로젝트와 동시에 컴파일/빌드 될 수없는 것일까?왜 우리는 cmake가 필요합니까?

또한 때로는 Ruby, Perl, Python을 모두 특정 버전으로 설치해야하기 때문에 cmake가 라이브러리를 빌드 할 수 있습니다 ... 왜 이러한 프로그램이 필요하며 라이브러리를 빌드하기 만하면됩니다. 내 프로젝트도? (구체적으로 라이브러리를 빌드 한 후 해당 프로그램을 제거 할 수 있습니까?)

+4

* "왜 내 프로젝트에 필요한 것들을 경로 #"포함하지 않고 프로젝트와 동시에 컴파일/빌드 할 수 있습니까? "- 당신이하지 않는 것처럼 들립니다. 어떤 부분이 라이브러리를 구성하는지 그리고 어떻게 프로그램에 통합되는지 이해합니다. 기본 사항에 관해서는 여기에서 속도를 높여야합니다. 어쨌든, 라이브러리가 [CMake] (http://cmake.org)를 필요로한다면 (웹 검색을 두려워하지 마십시오.) 그것이 빌드 시스템을 관리하기 위해 선택한 도구이기 때문에 그렇게합니다. – IInspectable

답변

1

다른 플랫폼에서 C++로 작업하는 것은 현재 엉망입니다.

거기에는 몇 가지 다른 빌드 시스템이 있으며 표준 방법이 없습니다. 그냥 비주얼 스튜디오 솔루션을 제공하지 않는 것은 리눅스 나 맥에서 편집을 돕지 않는다.

Linux 또는 Mac 용 makefile을 추가하는 경우 솔루션과 makefile간에 구성을 반복해야합니다. 이로 인해 많은 유지 관리 오버 헤드가 발생할 수 있습니다. 또한 메이크 파일은 새로운 빌드 도구와 비교할 때 실제로 좋은 빌드 도구가 아닙니다.

CMake 라이브러리 만 가지고 있다는 것은 대부분 우연입니다. CMake는 현재 인기있는 선택입니다.

빌드를 통합하기위한 몇 가지 솔루션이 있습니다. CMake는 특별한 방법으로 빌드 도구입니다. 메이크 파일을 만들고 빌드 할 수 있지만 원하는 경우 cmake에게 시각적 인 스튜디오 솔루션을 만들도록 지시 할 수 있습니다.

외부 프로그램에서도 마찬가지입니다. 그것들은 여러분이 사용하는 라이브러리의 유지 자의 선택이며 코드 생성 같은 것에 대한 표준은 없습니다.

CMake는 "솔루션"이 아니지만 (향후 Visual Studio 2015는 cmake 지원 기능을 통합하고 있지만) 크로스 플랫폼 인 빌드 시스템의 추세는 점점 더 많은 방향으로 가고 있습니다.

몇몇 라이브러리는 헤더 컴파일 할 필요가있다 : 귀하의 질문에


왜 당신은 단지 헤더를 포함 할 수 없습니다. 어느 쪽이든 미리 컴파일 된 libs/dll을 얻을 수 있으며 헤더를 포함하고 링커 경로를 추가하십시오. 이것은 리눅스에서 더 쉽습니다. -dev 패키지가 prebuild 라이브러리를 설치하고 패키지 관리자가 패키지 관리자를 통해 설치할 수 있기 때문입니다. Windows에는 기본적으로 그러한 것이 없습니다.

또는 라이브러리에서 사용하는 buildtool을 사용하여 직접 빌드해야합니다.

+1

* "Windows에는 기본적으로 그러한 것이 없습니다."* - 네이티브인지 여부에 관계없이 Visual Studio는 동일한 목적으로 [NuGet] (https://www.nuget.org/)을 사용하므로 종속성 배포도 간단합니다. * "Microsoft 개발 플랫폼 용 패키지 관리자"*입니다. NuGet에 대한 멋진 점은 ** ** ** ** ** ** ** ** 하나의 ** URL에서 패키지를 가져 오는 유일한 ** 패키지 관리자입니다. Linux 패키지 관리자보다 * NuGet 문제 해결 *을 검색하는 리소스가 훨씬 적습니다. – IInspectable

+1

요약을 좋아하지만, 링크를 추가하고 싶습니다. [Visual Studio의 CMake 지원] (https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/)), [오픈 소스 응용 프로그램의 구조 : CMake] (http://aosabook.org/en/cmake.html) 및 [About CMake] (https://cmake.org/overview/)를 참조하십시오. – Florian

+0

NuGet 언급에 대한 @IInspectable 감사. 나는 아직 그 일을하지 않았으므로이 주제에 대해 아무 것도 추가 할 수 없었다. – Hayt

관련 문제