CMake로 C 프로젝트를 설정하는 방법은 무엇입니까?
cmakelists.txt, src/를 포함한 프로젝트 디렉토리 구조를 작성하고/; 2. cmakelists.txt 쓰기, cmake 버전, 프로젝트 이름, c 표준 및 추가 실행 파일을 지정하십시오. 3. MKDIR 빌드를 사용하여 디렉토리를 입력하고 CMAKE .. 및 CMAKE -BUILD를 실행하십시오. 컴파일을 위해; 4. Add_Executable을 통해 여러 소스 파일을 추가하고 Target_include_Directories를 사용하여 헤더 파일 경로를 포함합니다. 5. find_package를 사용하여 외부 라이브러리를 찾아 target_link_libraries와 연결하십시오. 6. Target_compile_options를 통해 컴파일러 경고를 활성화하고 -dcmake_build_type = 디버그를 사용하여 디버그 버전을 생성합니다. 전체 프로세스가 완료되면 빌드 디렉토리에서 실행 파일을 생성 할 수 있으며 필요에 따라 프로젝트를 점차 확장 할 수 있습니다.
기본 구조와 워크 플로를 이해하면 CMake를 사용하여 C 프로젝트를 설정하는 것이 간단합니다. 일반적인 프로젝트를 위해 단계별로 수행하는 방법은 다음과 같습니다.

1. 프로젝트 폴더 구조
깨끗한 디렉토리 레이아웃으로 프로젝트를 구성하여 시작하십시오. 일반적인 구조는 다음과 같습니다.
my_cpp_project/ cmakelists.txt SRC/ main.cpp └ ─담 포함/ └ ─건 (헤더 파일)
나중에 라이브러리 또는 테스트에 하위 디렉토리를 추가 할 수도 있습니다.

2. cmakelists.txt를 작성하십시오
CMakeLists.txt
파일은 cmake 설정의 핵심입니다. 간단한 실행 파일의 최소 예는 다음과 같습니다.
# 필요한 최소 CMAKE 버전을 지정하십시오 cmake_minimum_required (버전 3.14) # 프로젝트 이름과 언어를 정의하십시오 프로젝트 (mycppproject languages cxx) # C 표준 설정 (예 : C 17) set (cmake_cxx_standard 17) set (cmake_cxx_standard_required on) # Executable 추가 : 소스 파일에서 구축 된 이름 IT "App" add_executable (app src/main.cpp)
-
cmake_minimum_required()
는 사용자가 호환 가능한 cmake 버전을 가지고 있는지 확인합니다. -
project()
프로젝트 이름을 설정하고 CMAKE를 사용하고 있다고 알려줍니다. c. -
set(CMAKE_CXX_STANDARD ...)
특정 C 표준을 시행합니다. -
add_executable()
소스 파일에서 대상 실행 파일을 정의합니다.
3. 프로젝트를 구축하십시오
Cmake는 소스 외 빌드 패턴 (권장)을 사용합니다. 빌드 디렉토리를 만들고 거기에서 cmake를 실행하십시오.

mkdir 빌드 CD 빌드 cmake .. CMAKE- 건축.
이는 플랫폼 별 빌드 파일 (Unix의 MakeFiles, Windows의 Visual Studio 파일)을 생성하고 코드를 컴파일합니다.
빌드 후 빌드 디렉토리에 실행 파일 (예 : app
또는 app.exe
)을 찾을 수 있습니다.
4. 더 많은 소스 파일과 헤더를 추가하십시오
.cpp
파일이 여러 개있는 경우 :
add_executable (app src/main.cpp src/helper.cpp src/utils.cpp ))
include/
디렉토리에서 헤더 파일을 포함하려면 :
target_include_directories (App private $ {cmake_current_source_dir}/포함)
이를 통해 컴파일러는 app
대상을 컴파일 할 때 include/
폴더를 살펴 보도록 지시합니다.
5. 링크 라이브러리 (선택 사항)
외부 라이브러리 (예 : Boost, OpenCV)를 사용하는 경우 다음과 같이 연결할 수 있습니다.
find_package (opencv 필수) Target_Link_Libraries (App Private $ {opencv_libs})
직접 구축 한 정적 또는 공유 라이브러리의 경우 add_library()
사용하고 target_link_libraries()
와 연결하십시오.
6. 경고 및 디버그 빌드를 활성화합니다
컴파일러 경고를 활성화하여 코드 품질 향상 :
target_compile_options (App private -wall -wextra)
더 나은 디버깅을 위해 디버그 모드를 구축하십시오.
cmake -dcmake_build_type = 디버그 ..
기타 공통 빌드 유형 : Release
, RelWithDebInfo
, MinSizeRel
.
그것이 기본입니다. 프로젝트가 커지면 CMakeLists.txt
하위 디렉토리로 나누거나 재사용 가능한 모듈을 만들거나 최신 CMAKE 대상을 사용하여 더 나은 캡슐화를 할 수 있습니다.
기본적으로 작은 시작 : 간단한 CMakeLists.txt
작성하고 소스를 구축하고 필요에 따라 확장하십시오.
위 내용은 CMake로 C 프로젝트를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

InstallaC compilerlikeg usingpackagemanagersordevelopmenttoolsdependingontheOS.2.WriteaC programandsaveitwitha.cppextension.3.Compiletheprogramusingg hello.cpp-ohellotogenerateanexecutable.4.Runtheexecutablewith./helloonLinux/macOSorhello.exeonWi

STD :: SYSTEM () 함수를 사용하여 System 명령을 실행하고 System 명령을 실행하고 STD :: SYSTEM ( "LS-L")과 같은 C 스타일 문자열 명령을 전달해야하며 리턴 값은 -1이므로 명령 프로세서를 사용할 수 없습니다.

Custom 할당자를 사용하여 C 컨테이너의 메모리 할당 동작을 제어 할 수 있습니다. 1. 예제의 LoggingAllocator는 할당, 거래, 구성 및 방법을 오버로드하여 메모리 작동 로깅을 구현합니다. 2. 할당자는 STL 컨테이너 유형 변환 요구 사항을 충족시키기 위해 value_type 및 Rebind 템플릿을 정의해야합니다. 3. 할당자는 시공 및 복사 중에 로그 출력을 트리거하며, 이는 수명주기를 추적하기에 편리합니다. 4. 실제 애플리케이션에는 메모리 풀, 공유 메모리, 디버깅 도구 및 임베디드 시스템이 포함됩니다. 5. C 17 이후로 구성 및 파괴는 기본적으로 std :: allocator_traits에 의해 처리 될 수 있습니다.

C의 스택은 STL의 컨테이너 어댑터입니다. 백인 프리 스트의 원리를 따라야하며 헤더 파일을 포함해야합니다. 푸시로 요소를 추가하고, 팝은 상단 요소를 제거하고, 탑은 스택의 상단에 액세스합니다. 수술 전에 표현 평가 및 역 추적과 같은 시나리오에 종종 사용되는 빈 지 여부를 확인하십시오.

답은 필요한 유형 별칭 및 작업이 포함 된 클래스를 정의하는 것입니다. 먼저, value_type, 참조, 포인터, Different_type 및 iterator_category를 설정 한 다음 Dereference, ycrement 및 비교 작업을 구현하십시오. 마지막으로, 컨테이너에 시작 () 및 end () 메소드를 제공하여 반복자 인스턴스를 반환하여 STL 알고리즘 및 루프의 범위와 호환됩니다.

cmakelists.txt, src/를 포함한 프로젝트 디렉토리 구조를 작성하고/; 2. cmakelists.txt 쓰기, cmake 버전, 프로젝트 이름, c 표준 및 추가 실행 파일을 지정하십시오. 3. mkdirbuild를 사용하여 디렉토리를 입력하고 cmake .. 및 cmake-빌드를 실행하십시오. 컴파일을 위해; 4. Add_Executable을 통해 여러 소스 파일을 추가하고 Target_include_Directories를 사용하여 헤더 파일 경로를 포함합니다. 5. find_package를 사용하여 외부 라이브러리를 찾아 target_link_libraries와 연결하십시오. 6.

추상 클래스는 하나 이상의 순수한 가상 함수를 포함하는 클래스입니다. 인스턴스화 할 수 없으며 기본 클래스로 상속되어야합니다. 파생 클래스는 모든 순수한 가상 함수를 구현해야하며, 그렇지 않으면 여전히 추상 클래스가됩니다. 1. 순수한 가상 함수는 가상 반환 유형 함수 이름 () = 0으로 선언됩니다. 인터페이스 사양을 정의하기 위해; 2. 초록 클래스는 종종 다형성 호출을 구현하기 위해 area (), draw () 등과 같은 통합 인터페이스 설계에 사용됩니다. 3. 가상 파괴자는 추상 클래스 (예 : Virtual ~ shape () = 기본값;)에 제공되어 기본 클래스 포인터를 통해 파생 클래스 객체가 올바르게 릴리스되도록해야합니다. 4. 파생 클래스 상속 후, 사각형 및 원과 같은 순수한 가상 함수를 다시 작성하여 각 영역을 계산하기 위해 영역 ()을 구현해야합니다. 5.

theautokeywordletstheCompilerDuceVariAbletypesfrominitializers, retingverbosity and rowingimprovingmainability.itsimplifiescodewithcomplextypes liTeratorsandlambdas, supportSqualifierstoavoidunnecessaryCopies, andAdaUtomallasticallasticallasticallasticcopies
