inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

readable_code::CMake - Fancy하게 C++ Project 만들기

The Structure for External Dependencies

configurate_package.cmake 의 project() 와 find_package()

290

mumbi

작성한 질문수 2

0

gtest/configurate_package.cmake 에 project(GTest...) 를 넣으면 GTest 가 설치되지도 않았는데 find_package() 에서 있는 걸로 처리되어서 install 이 안되고 있습니다.  혹시 제가 놓친 부분이 있을까요?  

c++ cmake 소프트웨어-설계

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
mumbi님, 질문해주신 내용에 대해 직접적으로 관련된 정보는 제공하고 있지 않으나, 일반적인 상황에서 find_package() 함수의 작동 방식에 대해서 설명드릴 수 있습니다.

find_package()는 CMake에서 외부 라이브러리 또는 프로젝트를 찾기 위해 사용하는 함수입니다. 이 함수를 사용할 때 CMake는 지정된 라이브러리의 설치 경로를 찾으려고 시도하며, 만약 라이브러리가 시스템에 이미 설치되어 있다면 해당 경로 정보를 반환합니다.

project() 명령은 현재 CMake 프로젝트의 정보를 설정하는 데 사용됩니다. project(GTest...)gtest/configurate_package.cmake 파일에 추가했다고 할 때, 이는 해당 CMake 스크립트 안에서 GTest를 찾거나 설정하려는 의도일 수 있습니다.

문제의 원인으로는 여러 가지가 있을 수 있으나, 가장 흔한 경우는 find_package()가 실행될 때 CMake가 해당 패키지를 시스템 내에서 이미 찾았다고 판단하여 추가 설치 과정을 건너뛰게 되는 것입니다. 이는 find_package()가 특정 경로에 라이브러리가 이미 존재하는 지 확인하고, 조건에 따라 찾은 라이브러리의 경로를 사용하기 때문입니다.

이런 상황을 해결하기 위해, CMakeLists.txt 파일이나 해당 CMake 설정 파일에서 find_package() 호출 전에 GTest와 관련된 경로를 명확하게 설정해주는 것이 중요합니다. 또는 find_package() 함수에 몇몇 추가 옵션을 지정하여 라이브러리 탐색 방식을 조정할 수 있습니다. 예를 들어, REQUIRED, QUIET, 또는 NO_MODULE 등의 옵션을 사용할 수 있습니다.

더 자세한 해결 방안은 find_package() 함수의 공식 문서를 참고하거나, GTest가 올바르게 설치되고 CMake가 해당 라이브러리를 찾을 수 있도록 환경을 구성하는 것이 좋겠습니다.

Reticle이 안나옵니다.

0

4

1

진행 방법 질문드립니다!

0

23

2

Singleton 관련 질문입니다.

1

27

2

Substack 1년 제공

1

21

3

특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다

0

27

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

53

2

실제 FK제약조건을 설정하지 않는이유

0

35

2

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

23

0

2주차 개념#12 트리 순회

0

25

2

백준 사이트 서비스 종료

0

109

3

프로젝트 질문 문의

0

45

1

백준사이트가 종료된다고 합니다.

0

284

2

맵핑부분..

0

33

2

백준 서비스 종료

9

879

1

BCNF 질문

0

49

2

레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?

1

40

2

연관 엔티티 네이밍 규칙

0

40

1

6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민

0

40

2

Type checking

0

40

1

MATCHES 에서 regex 사용

0

52

2

강의자료는 어디서 받을 수 있을까요?

0

165

2

SEND_ERROR는 Error during configuration가 아니라 Generation이 아닌가요?

0

111

0

cmake 설치 및 예제 파일

0

466

2

MATCHES - 특정 패턴 포함

0

441

2