inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

The Structure for External Dependencies

configurate_package.cmake 의 project() 와 find_package()

312

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가 해당 라이브러리를 찾을 수 있도록 환경을 구성하는 것이 좋겠습니다.

코딩살구클럽 가입부탁드립니다

0

16

2

vs 디버그 옵션 설정

0

16

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

21

2

upload_file_id가 1,3,4 순서인 건에 대해

0

28

1

클로드코드 명령어-대화&세션관리 수업 자료

0

34

1

대규모 프로젝트에서 스펙파일 구조 설계

0

42

1

5-S 테스트 케이스 질문

0

31

2

코살 문제풀이 환경

0

45

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

41

1

추천 추가문제들

0

41

2

프로그래머스 코테 환경 관련해서 질문드립니다.

0

43

2

1과업 = 1세션 에대한 질문

0

64

2

해당 문제에 대한 채점이 코딩살구클럽에서 올바르게 처리되지 않습니다.

0

39

2

균형 이진 트리 설명 시 높이 숫자

0

30

2

4-H 질문드립니다.

0

35

2

백준 서비스 종료인데 조치 없나요?

0

62

1

1-K 질문드립니다.

0

41

2

완강 후 느낀점

1

81

1

Type checking

0

52

1

MATCHES 에서 regex 사용

0

85

2

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

0

200

2

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

0

128

0

cmake 설치 및 예제 파일

0

498

2

MATCHES - 특정 패턴 포함

0

462

2