강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của appy
appy

câu hỏi đã được viết

Tam giác đang hoạt động! CMake cho người mới bắt đầu

Cách sử dụng FetchContent

실행 방법 질문

Viết

·

47

0

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


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


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

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

 

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

 

c++cmakevcpkg

Câu trả lời 1

0

안녕하세요, 인프런 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를 사용할 때 외부 라이브러리의 빌드 관련 메커니즘에 대해 더 많은 정보를 제공하고 있습니다.

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

Hình ảnh hồ sơ của appy
appy

câu hỏi đã được viết

Đặt câu hỏi