0

Visual Studio에서 "솔루션"은 여러 프로젝트를 가질 수 있으며, 프로젝트는 다른 프로젝트의 종속성이 될 수 있습니다.VS 솔루션과 비슷한 방식으로 사용자 지정 라이브러리를 관리하는 방법 (여기서 VS는 자동으로 종속성을 만듭니다)?

유용한 이유는 Visual Studio가 빌드중인 프로젝트를 컴파일 할 때 종속성을 구축하기 때문입니다.

이렇게하면 컴파일 할 종속성 바이너리가 항상 최신 버전이됩니다. 커스텀 라이브러리의 코드 진행과 같은 문제를 무시하고, CLion이나 다른 Linux 개발 환경에서이 동작을 어떻게 달성 할 수 있습니까?

정상적인 워크 플로는 라이브러리를 /usr/lib/에 넣는 것이지만 다른 접근 방법이 있습니까? 당신은 당신의 코멘트에 배치 구조를 사용

+0

CMake .............................. – Darklighter

+0

CLion은 프로젝트 관리를 위해 [CMake] (https://cmake.org/)를 사용합니다. [해당 문서] (https://cmake.org/cmake/help/latest/)를 읽으십시오. –

+0

@Someprogrammerdude CMake가 의존성을 이미 구축하고 바이너리 만 링크하도록 요구합니까? – Greg

답변

1

, 그것은 정적 라이브러리는 간단한 아카이브보다 더 자주 아무것도 없기 때문에, C와 D 사이의 특별한 의존성이 없다는 것을이

project(A) 

add_executable(A ${SOURCES_FOR_A}) 
target_link_libraries(A B C D) # Make A depend on libraries B, C and D 

add_library(B STATIC ${SOURCES_FOR_B}) 
add_library(C STATIC ${SOURCES_FOR_C}) 
add_library(D STATIC ${SOURCES_FOR_D}) 

주 같은 수 오브젝트 파일. 정적 라이브러리는 실제로 자체적으로 링크되어 있지 않으므로 실행 파일을 링크 할 때 모든 정적 라이브러리를 제공해야합니다. 라이브러리가 를 공유하는 경우

다음은 조금 다르다 :

project(A) 

add_executable(A ${SOURCES_FOR_A}) 
target_link_libraries(A B C) # Make A depend on libraries B and C 

add_library(B SHARED ${SOURCES_FOR_B}) 

add_library(C SHARED ${SOURCES_FOR_C}) 
target_link_libraries(C D) # Make C depend on D 

add_library(D SHARED ${SOURCES_FOR_D}) 

공유 라이브러리는 연결 및 실행 목표와 매우 유사하다. 따라서 대상 AD에 대한 간접적 종속성을 지정할 필요가 없습니다. C에 연결되어 있기 때문입니다.

[주의 : 위의 CMake 명령은 필요한 정확한 구문과 인수가 아닐 수 있습니다.

+0

고마워, 지금 당장은 완벽 해! – Greg