CMake는 어떻게 사용하나요?


102

opencv를 컴파일하기 위해 CMake를 사용하려고합니다.

튜토리얼을 읽고 있지만 CMakeLists 파일이 무엇이며 CMake의 GUI에 어떻게 연결되어 있는지 이해할 수 없습니까?

또한 makefile이 무엇인지 이해할 수 없었습니다. CMakeLists와 동일합니까?

그리고 결국 내가 visual-studio로 여는 파일은 무엇입니까?


문제는 (아마도 함께 언급해야한다 윈도우에 관련된 경우 windows태그)
실레 Starynkevitch

CMake 3.13.3, 플랫폼 Windows 및 IDE Visual Studio 2017과 관련하여 wikihow.com/Use-CMake Regards를 제안 합니다.
George Theodosiou

답변:


30

CMake는 CMakeList 파일을 가져 와서이를 플랫폼 별 빌드 형식 (예 : Makefile, Visual Studio 등)으로 출력합니다.

먼저 CMakeList에서 CMake를 실행합니다. Visual Studio를 사용하는 경우 출력 프로젝트 / 솔루션을로드 할 수 있습니다.


2
Makefile은 무엇입니까? Visualstudio 용 프로젝트 / 솔루션 파일은 어디에서 찾을 수 있습니까?
lital maatuk

3
cmake (또는 CMakeSetup 및 클릭 생성)를 실행 한 후 프로젝트 트리에서 Makefile (유닉스 인 경우) 또는 프로젝트 파일을 찾을 수 있습니다. 위치는 CMakeList에서 지정할 수 있습니다. 다음은 CMake 위키에서 찾은 짧은 프레젠테이션입니다. elpauer.org/stuff/learning_cmake.pdf
holtavolt

2
CMake는 선택한 빌드 형식을 사용하여 전체 프로젝트를 구성합니다. 즉, Visual Studio를 사용하여 컴파일 할 수 있도록 모든 것을 설정합니다. 기본적으로 (적어도 Linux에서는) 대신 Make를 사용하는 프로젝트를 만듭니다. Make는 프로젝트를 구성하거나 설정하는 것이 아니라 실제로 프로젝트를 빌드하는 데 사용됩니다. 따라서 먼저 CMake를 사용하여 프로젝트를 설정 한 다음 Make를 실행하여 컴파일하고 빌드해야합니다.
leinaD_natipaC

156

Windows에 대해서는 모르지만 (사용한 적이 없음) Linux 시스템에서는 빌드 디렉터리 (최상위 소스 디렉터리에) 만 만들어야합니다.

mkdir build-dir

안에 들어가

cd build-dir

그런 다음 실행 cmake하고 부모 디렉터리를 가리 킵니다.

cmake ..

그리고 마침내 실행 make

make

공지 사항 것을 makecmake다른 프로그램입니다. cmakeA는 Makefile발전기와 make유틸리티는 적용됩니다 Makefile텍스트 파일입니다. cmake & make wikipedia 페이지를 참조하십시오 .

NB : Windows에서는 cmake작동 할 수 있으므로 다르게 사용해야 할 수 있습니다. 문서를 읽어야합니다 (리눅스에서했던 것처럼)


cmake와 make의 차이점은 무엇입니까? 다른 프로그램인가요?
lital maatuk

4
훌륭한 대답; 하위 디렉터리에서 빌드 파일을 가져 오는 방법을 알 수 없습니다. 나는 공식 문서에 이것을 언급하지 않는 이유를 이해할 수 없습니다.
TheBigB

이것은 Linux에서 작동하지만 Windows에서는 C / C ++ 컴파일러를 감지하면 중단됩니다. 그 방법에 대한 아이디어가 있습니까?
bartlomiej.n

특정 컴퓨터를 설정 하는 방법에 따라 다릅니다 . PATH변수 가 올바른지 확인 하십시오. BTW, 저는 제 인생에서 Windows를 사용한 적이 없습니다 (그리고 1974 년에 제 첫 프로그램을 작성했습니다)
Basile Starynkevitch

2
너무 많은 찬성 투표와 대답은 Visual Studio에 대해 아무것도 말하지 않습니다.
Abyx

10

예, cmakemake 는 다른 프로그램입니다. cmake(Linux에서) Makefile 생성기입니다 (그리고 Makefile -s는 make유틸리티를 구동하는 파일입니다 ). 다른 Makefile 생성기가 있습니다 (특히 configure 및 autoconf 등). 그리고 다른 빌드 자동화 프로그램 (예 : ninja )을 찾을 수 있습니다 .


나는 이것이 약간 혼란 스럽다고 생각한다. cmake는 빌드 시스템 생성기이며 생성 할 수있는 것 중 하나 는 makefile입니다 ( gnu.org/software/make 에서와 같이 ). 그러나 생성 할 수있는 다른 많은 시스템이 있으며 "Makefile 생성기"가 아닙니다. macos (그리고 아마도 다른 모든 곳에서)에서 cmake --help를 실행하면 그것이 가지고있는 생성기의 긴 목록을 제공 할 것입니다. 예를 들어 cmake는 Xcode 프로젝트를 생성 할 수 있습니다. make와는 관련이 없습니다.
James Moore

0

CMake 3.13.3, 플랫폼 Windows 및 IDE Visual Studio 2017과 관련하여이 가이드를 제안합니다 . 간단히 말해 :
1. cmake를 다운로드하고 압축을 풀고 실행합니다.
2. 예를 들어 GLFW를 다운로드하고 압축을 풀고 Build 폴더 안에 생성합니다 .
3. cmake에서 "소스"찾아보기> "빌드"찾아보기> 구성 및 생성.
4. Visual Studio 2017에서 솔루션을 빌드합니다.
5. 바이너리를 가져옵니다.
문안 인사.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.