인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

가나파이님의 프로필 이미지

작성한 질문수

삼각형의 실전! CMake 초급

CMake 변수

수업 진행 중에 궁금한 부분이 생겼습니다.

해결된 질문

작성

·

103

0

수업진행중 cmake에 관해 궁금한 부분이 생겼는데요. CMakeLists.txt에서 Debug인지 Release인지 작성해준 것이 없는 것 같은데 어떻게 Build/Debug 밑에 실행파일이 생성되게 되나요? 그리고 32bit 프로그램인지 64bit 프로그램인지 작성하는 부분도 없는데 어떤 기준으로 만들어지게 되는건가요? vscode cmake 익스텐션을 사용하고 있는데 익스텐션에서 설정이 되어있는걸까요?

답변 2

0

삼각형님의 프로필 이미지
삼각형
지식공유자

CMake에는 Debug인지 Release인지 32bit인지 64bit인지 기본 값이 설정되어 있습니다.

CMake에서 빌드를 할 때, --config로 Debug 또는 Release를 결정할 수 있습니다.

예시: cmake --build . --config Release

아키텍쳐는 컴파일러마다 설정하는 방법이 다릅니다.

MSVC

64비트: -A x64

32비트: -A Win32

Clang

64비트: -DCMAKE_C_FLAGS=-m64

32비트: -DCMAKE_C_FLAGS=-m32

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 가나파이님!

CMake를 이용한 빌드 관련하여 몇 가지 궁금한 부분이 있으신 것 같습니다. CMake에서는 다양한 빌드 설정을 할 수 있으며, 이에 관련된 사항들을 간단히 설명드리겠습니다.

  1. Debug/Release 구분:
    CMake에서 Debug 혹은 Release 모드로 빌드하는 것은 CMakeLists.txt 파일에서 직접적으로 설정하지 않고, CMake를 호출할 때 옵션을 주어 결정합니다. 예를 들어, CMake 명령을 실행할 때 -DCMAKE_BUILD_TYPE=Debug 또는 -DCMAKE_BUILD_TYPE=Release 를 지정하여 설정할 수 있습니다. 이러한 옵션을 통해 CMake는 최적화 수준 등 관련 설정을 적용하게 됩니다.

  2. 32bit/64bit 구분:
    기본적으로 CMake는 시스템의 기본 아키텍처를 따라가게 됩니다. 64비트 시스템에서 64비트 빌드를, 32비트 시스템에서 32비트 빌드를 생성합니다. 다만, 명시적으로 32비트 혹은 64비트로 빌드를 원한다면, 특정 CMake 설정이나 toolchain 파일을 통해서 설정할 수 있습니다.

  3. VSCode CMake 익스텐션:
    VSCode의 CMake 익스텐션은 이러한 설정들을 쉽게 관리할 수 있도록 도와줍니다. 설정 파일이나 환경 변수를 통해 기본 빌드 설정을 관리할 수 있으며, 원하는 빌드 설정을 프로파일로 저장하고 필요에 따라 쉽게 전환할 수 있습니다.

아래의 링크들은 해당 주제를 자세히 다룬 기존 질답을 포함하고 있으니 참고하시면 더 많은 도움이 될 것입니다:
- CMake Debug/Release 설정 관련 질문
- CMake 빌드 아키텍처 설정 관련

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.