inflearn logo
강의

講義

知識共有

三角形の本番! CMake初級

FetchContentの使い方

실행 방법 질문

68

pie

投稿した質問数 7

0

Windows 환경에서 Visual Studio 컴파일러를 이용하여
FetchContent를 빌드하였습니다.


fetch-content\build\Debug\fetch-content.exe가 나오는 것을 확인하였습니다.


이걸 그냥 실행시키면 poco 관련 dll이 없다고 나옵니다.

fetch-content.sln를 Visual Studio로 열어서
디버깅 시작(F5)로 실행시켜도 마찬가지입니다.

 

이렇게 dll을 못찾는다고 나오지 않게 하려면 CMake로 어떻게 설정을 해야하는지 궁금합니다.

 

c++ cmake vcpkg

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. pie님을 위해 FetchContent와 관련된 문제에 대해 설명드리겠습니다.

FetchContent를 이용하여 프로젝트를 빌드한 후 DLL 관련 에러가 발생하는 것은 대부분 빌드 시에 필요한 DLL이 프로그램 실행 디렉터리에 없기 때문입니다. 이는 설정 문제보다는 실행 환경의 문제일 가능성이 크므로, 다음의 방법을 통해 해결할 수 있습니다:

  1. DLL 경로 설정: 프로젝트가 의존하는 DLL 파일을 실행 파일의 디렉터리로 복사하거나 시스템 경로에 추가해 줍니다. Windows에서는 PATH 환경 변수에 DLL이 존재하는 디렉터리를 추가하여 Visual Studio 빌드에서 실행 시 필요한 DLL을 찾을 수 있도록 할 수 있습니다.

  2. CMake 설정 수정: CMake를 사용할 때 설치 단계에서 필요한 DLL을 함께 복사하도록 설정할 수 있습니다. install() 함수나 add_custom_command() 등을 이용하여 빌드 직후에 해당 DLL을 적절한 경로로 복사할 수 있습니다. 예를 들어:

   add_custom_command(TARGET fetch-content 
                      POST_BUILD
                      COMMAND ${CMAKE_COMMAND} -E copy_if_different
                      "${CMAKE_BINARY_DIR}/path_to_dll/dllname.dll"
                      $<TARGET_FILE_DIR:fetch-content>)

이 코드는 빌드 후 필요한 DLL을 실행 파일 디렉터리로 복사하는 예제입니다.

  1. 빌드 환경 확인: 프로젝트 내 dependency configuration이 올바르게 설정되어 있는지 확실히 확인합니다. 특히, confgure 단계에서 각종 경로 및 라이브러리 설정이 제대로 이루어져야 합니다.

아래 링크를 참조하시면 유사한 문제에 대한 설명을 얻을 수 있습니다:

이 링크에서는 CMake와 FetchContent를 사용할 때 외부 라이브러리의 빌드 관련 메커니즘에 대해 더 많은 정보를 제공하고 있습니다.

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

CMake Error: Unknown argument --fresh

0

66

1

질문

0

54

2

set(<variable> ON/OFF)와 option에 차이가 있을까요?

0

65

2

-와 _를 선택하는 규칙이 궁금합니다.

0

71

2

4강과 5강의 강의 순서가 바뀐 것 같습니다.

0

68

2

install 추가 질문

0

90

2

-G 명령으로 Xcode 생성 할때 오류가 발생합니다.

0

156

2

Build_SHARED_LIBS 질문

0

152

2

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

0

186

2

설치경로 지정이 잘 안돼요.

0

154

1

FetchContent로 가져온 외부 라이브러리를 사전에 빌드하는 방법이 있을까요?

0

246

2

ExternalProject_Add 관련 질문

0

268

2

FetchContent를 캐시 처리할 수 있나요?

0

147

1

CMake 커맨드 - target_include_directories 질문

0

200

2

병렬 동작 지원 여부

1

267

2

CMake 의 단점들

0

238

1

CMake 출시 연도가 영상에서 아마도 잘못 소개된 것 같습니다

0

177

1

4-2 installing 에서 질문드립니다

0

229

2

CheckIncludeFileCXX 모듈 질문

0

197

1

혹시 강의에 나오는 예제 코드를 받을 수 있는건가요?

0

280

1

CMake 배포 강의가 CMake 설치 강의랑 똑같아요

0

486

1

Xcode 빌드시스템 에서 빌드가 잘 되지 않는 문제가 있습니다.

0

1276

1

CMake 심화 - CMake 설치 실습 관련 문제

0

770

3

CMakeCache.txt에서 ON과 1은 같은건가요?

0

313

1