inflearn logo
강의

講義

知識共有

三角形の本番! CMake初級

CMake変数

Build_SHARED_LIBS 질문

解決済みの質問

152

finenumber669820

投稿した質問数 6

0

안녕하세요. 강사님
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

triangle

안녕하세요?

BUILD_SHARED_LIBS을 사용하면 add_library시 라이브러리 타입을 지정하지 않은 타겟에 일괄적으로 적용되게 됩니다.

add_library( foo STATIC src/foo.cpp )처럼 라이브러리 타입을 정적으로 지정한 경우에는 BUILD_SHARED_LIBSTRUE로 설정하더라도 동적 라이브러리로 빌드가 되지 않는 것을 의미합니다.

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 윤지환님.

BUILD_SHARED_LIBS에 대한 질문을 주셨군요. 아래에서 기본 개념에 대해 간단히 설명드리고, 유사한 질문에 대한 답변 링크를 제공하겠습니다.

BUILD_SHARED_LIBS 설명

CMake에서 BUILD_SHARED_LIBS는 라이브러리를 기본적으로 정적(STATIC)으로 빌드할지 동적(SHARED)으로 빌드할지를 결정하는 전역 옵션입니다. 이를 통해 라이브러리를 사용할 때 컴파일러가 어떻게 접근할지 결정할 수 있습니다.

  • BUILD_SHARED_LIBS=TRUE: 모든 라이브러리를 동적 라이브러리로 빌드합니다.
  • BUILD_SHARED_LIBS=FALSE: 모든 라이브러리를 정적 라이브러리로 빌드합니다.

add_library 와 BUILD_SHARED_LIBS의 관계

이미 add_library 명령어에서 명시적으로 STATIC이나 SHARED를 지정한 경우, 해당 라이브러리 타겟은 BUILD_SHARED_LIBS 변수의 영향을 받지 않습니다. 이는 add_library(foo STATIC src/foo.cpp)에서 보실 수 있듯이, 명시적으로 정적 라이브러리를 생성하도록 지정했기 때문입니다.

반대로, add_library(foo src/foo.cpp)와 같이 라이브러리 형태를 지정하지 않는 경우에는 BUILD_SHARED_LIBS 설정에 따라 정적 또는 동적 라이브러리로 생성됩니다.

유사한 질문에 대한 기존 답변

  1. CMake에서 동적 및 정적 라이브러리 빌드 관련 질문

위의 링크에서는 라이브러리 빌드 옵션에 대한 자세한 설명과 함께 BUILD_SHARED_LIBS가 어떻게 적용되는지에 대한 답변을 확인하실 수 있습니다.

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

실행 방법 질문

0

68

1

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

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

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