inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

실행 방법 질문

미해결

삼각형의 실전! CMake 초급

Windows 환경에서 Visual Studio 컴파일러를 이용하여 FetchContent를 빌드하였습니다. fetch-content\build\Debug\fetch-content.exe가 나오는 것을 확인하였습니다. 이걸 그냥 실행시키면 poco 관련 dll이 없다고 나옵니다. fetch-content.sln를 Visual Studio로 열어서 디버깅 시작(F5)로 실행시켜도 마찬가지입니다. 이렇게 dll을 못찾는다고 나오지 않게 하려면 CMake로 어떻게 설정을 해야하는지 궁금합니다.

  • c++
  • cmake
  • vcpkg
pie 댓글 1 좋아요 0 조회수 93

Type checking

미해결

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

set(DATA_LIST ${CMAKE_CURRENT_SOURCE_DIR}/directory0/file.txt ${CMAKE_CURRENT_SOURCE_DIR}/directory0/directory ${CMAKE_CURRENT_SOURCE_DIR}/directory0/symlink.txt file.txt directory0/directory directory0/symlink.txt ) foreach(DATA ${DATA_LIST}) if(IS_DIRECTORY ${DATA}) message(STATUS "${DATA} is a directory") endif() endforeach() 왜 directory0/directory 는 IS_DIRECTORY 에서 참으로 판단되지 않나요?

  • c++
  • cmake
  • 소프트웨어-설계
Geonyeong Lee 댓글 1 좋아요 0 조회수 52

MATCHES 에서 regex 사용

미해결

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

Control statement 26:45 에 "^[a-z]{3}.txt$" 가 아닌 "^[a-z]3\\.txt$"가 맞는 것 같습니다.

  • c++
  • cmake
  • 소프트웨어-설계
Geonyeong Lee 댓글 2 좋아요 0 조회수 85

CMake Error: Unknown argument --fresh

미해결

삼각형의 실전! CMake 초급

--fresh는 3.24에서 추가되었군요. sudo apt install cmake 했는데 3.22로 설치되기 때문에 강의 내용처럼 홈페이지에서 직접 다운받아야 했군요. 공유를 위해 적어봅니다!

  • c++
  • cmake
  • vcpkg
ㅇㅅㅇ 댓글 1 좋아요 0 조회수 93

질문

해결됨

삼각형의 실전! CMake 초급

여러 줄 주석에서 === 개수는 어떤 식으로 활용되나요? add_compile_options는 전역라고 하셨는데 target_compile_options PUBLIC과 동작이 같나요? 타겟마다 다른 컴파일 옵션을 가질 수 있기 때문에 ABI에 영향을 주지 않는 것만 사용해야 합니다. ABI가 특정 옵션에 영향 받았는지는 어떻게 알 수 있을까요? PUBLIC이면 영향을 주는 옵션을 사용해도 안전한가요? 안전하다면 그래도 지양해야 하나요?

  • c++
  • cmake
  • vcpkg
ㅇㅅㅇ 댓글 2 좋아요 0 조회수 89

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

해결됨

삼각형의 실전! CMake 초급

project(hello-cmake) add_executable(hello_cmake src/main.cpp) 에서요 project와 add_executable에서 각각 다른 기호를 선택한 이유가 궁금합니다.

  • c++
  • cmake
  • vcpkg
ㅇㅅㅇ 댓글 2 좋아요 0 조회수 116

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

해결됨

삼각형의 실전! CMake 초급

[04. CMake CLI 사용법]에서 갑자기 hello-cmake가 나타나서 실습을 못 따라가 당황했는데요. [05. Hello CMake]와 순서가 바뀐 것 같습니다.

  • c++
  • cmake
  • vcpkg
ㅇㅅㅇ 댓글 2 좋아요 0 조회수 99

install 추가 질문

해결됨

삼각형의 실전! CMake 초급

안녕하세요? install 예제 코드를 약간 수정해서 응용해보고 싶습니다. 근데 이 내용을 챗봇들도 잘 몰라서 강사님께 문의드립니다. baz 타겟을 새로 만들고, foo는 baz타겟을 private으로 의존합니다. baz 타겟은 baz()를 제공하며 foo()와 동일하게 stdout 출력하는 코드입니다. #include <baz.h> foo() { cout << "I'm foo!" << endl; baz(); // "I'm baz!" } baz는 foo 내부에서만 사용됩니다. 그래서 demo에는 기존 코드처럼 foo 타겟의 헤더만 제공합니다. 제 의도는 I'm foo에 이어 I'm baz도 같이 출력됐으면 했는데, 항상 I'm baz만 출력됩니다. add_library(foo foo.cpp # baz.cpp ) 챗봇은 foo 타겟 만들 때 baz.cpp도 추가하라고 합니다. foo, baz 를 명시적으로 분리된 상태에서 CMakeLists.txt에서 작성하고, baz는 foo 내부에서만 사용되니 foo 타겟만 demo 노출해서 사용할 수 있는 방법이 있을까요?

  • c++
  • cmake
  • vcpkg
김종수 댓글 2 좋아요 0 조회수 119

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

해결됨

삼각형의 실전! CMake 초급

제가 맥에 대해서 거의 문외한 이어서. 발생 한 문제 원인을 잘 찾지 못하겠네요. hello-cmake 폴더에서 cmake -G "Xcode" -B build-xcode . 명령을 수행 하니 아래와 같은 오류가 발생 했습니다. -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:5 (project): No CMAKE_C_COMPILER could be found. CMake Error at CMakeLists.txt:5 (project): No CMAKE_CXX_COMPILER could be found. "Unix makefiles" 는 정상적으로 만들어 졌습니다. Xcode 를 한번도 실행 한적이 없어서 발생 한 문제 인가 해서 최신 버전으로 업데이트 하고. hello world 프로젝트 만들어서 빌드 까지 해보았습니다. 이것과는 관련 없는것 같고요. hello-cmake 폴더는 깃허브에서 다운 받은 것 입니다.

  • c++
  • cmake
  • vcpkg
HO-WON Kong 댓글 2 좋아요 0 조회수 187

Build_SHARED_LIBS 질문

해결됨

삼각형의 실전! CMake 초급

안녕하세요. 강사님 BUILD_SHARED_LIBS를 지정해줄 때 False는 정적, True는 동적으로 빌드된다는 것이 바로 앞의 커맨드 강의에서 add_library( foo STATIC src/foo.cpp ) 정적 add_library( foo SHARED src/foo.cpp ) 동적 과 같은 형태의 기능을 하는것인가요? 그리고 라이브러리 타겟을 정의할 때, 빌드 결과물을 지정해 줬다면 BUILD_SHARED_LIBS가 적용되지 않는 다는 말씀이 어떤 뜻인지 잘 이해가 안갑니다

  • c++
  • cmake
  • vcpkg
윤지환 댓글 2 좋아요 0 조회수 172

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

해결됨

삼각형의 실전! CMake 초급

수업진행중 cmake에 관해 궁금한 부분이 생겼는데요. CMakeLists.txt에서 Debug인지 Release인지 작성해준 것이 없는 것 같은데 어떻게 Build/Debug 밑에 실행파일이 생성되게 되나요? 그리고 32bit 프로그램인지 64bit 프로그램인지 작성하는 부분도 없는데 어떤 기준으로 만들어지게 되는건가요? vscode cmake 익스텐션을 사용하고 있는데 익스텐션에서 설정이 되어있는걸까요?

  • c++
  • cmake
  • vcpkg
가나파이 댓글 2 좋아요 0 조회수 227

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

해결됨

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

안녕하세요. 기초문법에서 강의자료로 사용하고 계시는 readable_code-cpp-build_system_modular_project_with_camke 프로젝트 패키지는 어디서 받을 수 있을까요? git도 찾아보았지만 없어서 문의드립니다.

  • c++
  • cmake
  • 소프트웨어-설계
윤지환 댓글 2 좋아요 0 조회수 199

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

해결됨

삼각형의 실전! CMake 초급

--install-prefix 를 특정 폴더를 지정하였는데도 실제 --target install 을 해보면, 자꾸 program files (x86) 에 가서 설치가 되는데 이건 왜그러는걸까요..? -- Install configuration: "Debug" -- Installing: C:/Program Files (x86)/installing/lib/foo.lib -- Installing: C:/Program Files (x86)/installing/include/foo.h -- Installing: C:/Program Files (x86)/installing/lib/cmake/installing/installing-config.cmake -- Installing: C:/Program Files (x86)/installing/lib/cmake/installing/installing-config-debug.cmake

  • c++
  • cmake
  • vcpkg
그릿 댓글 1 좋아요 0 조회수 183

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

미해결

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

안녕하세요 1강 message를 듣는 중 궁금한게 있습니다. SEND_ERROR는 Configuration은 되지만, Build Generation이 안된다고 설명해주셨는데 그러면, Error during configuration가 아니라 Error during Generation이 아닌가요?

  • c++
  • cmake
  • 소프트웨어-설계
OpenJR 댓글 0 좋아요 0 조회수 128

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

해결됨

삼각형의 실전! CMake 초급

안녕하세요 삼각형님! CMake를 활용해 OpenGL 환경을 구성하고 있고, FetchContent를 사용하여 외부 라이브러리를 의존하려고 하는 중입니다. 여기서 문제는 glad 라이브러리는 CMake Configure-Generate 단계만으로는 라이브러리가 빌드되지 않아 사용할 수 없었습니다.. 여기서 CMake 프로젝트 절차가 매끄럽지 못한 점은 프로젝트 개발을 위해 어쩔수 없이 --build 를 수행 한 뒤에 개발이 가능하다는 점이 걸리게 되었습니다. Configure, Generate 단계에, 본 프로젝트 add_executable 한 target을 제외하고 의존하는 라이브러리를 사전에 빌드할 수 있을까요? CMakeLists.txt 첨부 드립니다! https://github.com/DogGuyMan/OpenGL-With-CMake/blob/main/CMakeLists.txt https://github.com/DogGuyMan/OpenGL-With-CMake/blob/main/cmake/Dependency.cmake

  • c++
  • cmake
  • vcpkg
DogGuyMan 댓글 2 좋아요 0 조회수 287

ExternalProject_Add 관련 질문

해결됨

삼각형의 실전! CMake 초급

안녕하세요? 이번 강의에 외부 라이브러리를 사용하기 위해 1. vcpkg+find_package를 이용해 vcpkg로 설치한 라이브러리를 사용한다 2. fetchContent 를 이용해 vcpkg-find_package 없이 직접 package를 다운 받아서 사용한다. 를 배웠습니다. CMakeLists.txt에서 target_link_libraries를 이용하면 간단하게 라이브러리를 이용할 수 있구요. github에서 외부 라이브러리 사용법 안내(readme)를 읽다보면 종종 ExternalProject_Add와 add_dependencies, target_include_directories, target_link_directories, target_link_library 등도 사용하는 게 보입니다. 이 기술들은 사장된 기술들인가요? 강의 예제에서는 target_include_directories, target_link_directories, add_dependencies 를 사용하지 않는 이유가 궁금합니다. compile 후 linking을 위해서 이 명령어를 이용해 경로도 설정해줘야할 것 같은데요, 강의대로 따라하면 include directory, link directory를 굳이 설정할 필요 없이 link library로만으로도 빌드가 잘 되네요(?)

  • c++
  • cmake
  • vcpkg
김종수 댓글 2 좋아요 0 조회수 297

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

해결됨

삼각형의 실전! CMake 초급

안녕하세요! CMake에 대해 궁금한 부분이 많았는데, 훌륭한 강의로 많은 도움을 받았습니다. 관련하여 한가지 궁금한 부분이 있어서 질문을 드립니다. 현재 개발 환경에서 컨테이너 기반으로 CMake 빌드 자동화를 구현해 보려 합니다. 그런데, FetchContent 에서 외부 소스를 다운로드 받고 컴파일하는 부분이 매번 동일하게 수행됩니다. 이 부분을 캐시 처리하고 싶은데요, CMake 설정은 어떻게 가능한지 궁금합니다.

  • c++
  • cmake
  • vcpkg
하늘구름 댓글 1 좋아요 0 조회수 172

CMake 커맨드 - target_include_directories 질문

해결됨

삼각형의 실전! CMake 초급

강의 15:17 부근 target_include_directories 커맨드 설며에서, 'foo 타겟에 의존성을 가지고 있는 다른 타겟들은 bar 타겟의 인클루드 디렉토리에 있는 헤더 파일들을 사용할 수 있다' 라고 말씀해주셨습니다. 여기서 foo 가 아니라 bar 타겟 아닌가요? 커맨드에도 foo 타겟 이름을 보이지 않는데 어째서 foo 타겟에 의존성을 가지고 있는 다른 타겟들이 나온건지 질문드립니다.

  • c++
  • cmake
  • vcpkg
이태우 댓글 2 좋아요 0 조회수 225

병렬 동작 지원 여부

해결됨

삼각형의 실전! CMake 초급

CMake 에서 병렬 동작을 지원하나요? 빌드나 테스트 등을 병렬로 처리할 수 있을 것 같아서요.

  • c++
  • cmake
  • vcpkg
화를참자 댓글 2 좋아요 1 조회수 308

인기 태그

인프런 TOP Writers

주간 인기글