2016-06-05 2 views
-1

정적 링크를 사용하여 qt 앱용 라이브러리를 빌드하고 있습니다. 내 C + + 내부 라이브러리 중 하나에서 부스트를 사용하고 있습니다. 내 내부 라이브러리에 대해 .pro 파일을 사용하고 있는데, 부울 라이브러리 위치를 부름 위치 & 부스트 헤더 파일 위치로 정의했습니다. 내 라이브러리는 부스트에 의존합니다. 이 모든 것들은 지금까지 좋은 &을 훌륭하게 만듭니다.정적 라이브러리에서 부스트를 사용하면 앱에 부스트가 포함됩니다.

내 qt 앱이 부스트를 사용하는 내부 정적 라이브러리에 연결됩니다. 문제는 부스트를 사용하는 내부 라이브러리의 헤더를 포함하려고 할 때 '내 앱의 .pro 파일에서 부스트를 포함하지 않으면'빌드가 실패한다는 것입니다. app의 pro 파일에 boost 의존성을 포함 시키면 빌드 작업이 모두 훌륭하게 진행되지만, 앱이 부스트 또는 그것이 무엇이든지 상관없이 라이브러리의 의존성에 대해 걱정해야하므로이 작업을 수행하고 싶지 않습니다. 앱을 직접 사용하지 않을 때 내 앱이 부스트를 걱정하지 않도록하는 방법이 있습니까?

나는 비슷한 문제처럼 보인다는 아래의 링크를 읽을 수 있지만 대답은 공유 어떤 전문 지식이 감사 나 How to link Boost in a dependant static library

작동하지 않습니다. 미리 감사드립니다.

+1

응용 프로그램은 부스트를 사용합니다. 당신은 부스트를 연결해야한다는 것에 놀랐습니다. 왜? –

+0

아니요. MyStaticLibrary1은 boost & app를 사용하여 MyStaticLibrary1을 사용합니다. 이로 인해 직접 사용하지 않는 경우에도 앱에 부스트가 포함됩니다. 그게 상황이야. 부스트에 대한 앱 의존성을 피하기 위해 노력하고 있습니다. – Rubin

+0

앱이 부스트를 사용하는 라이브러리를 사용하는 경우 앱이 부스트를 사용합니다. 그처럼 간단합니다. –

답변

2

정적 라이브러리는 오브젝트 파일의 콜렉션 (아카이브)에 불과합니다. 정적 라이브러리와 링크하면 별도의 오브젝트 파일과 연결되는 것과 같습니다.

정적 라이브러리에서 외부 제 3 부분 라이브러리를 사용하는 경우 자체 정적 라이브러리가 필요할 때마다 외부 제 3 부분 라이브러리와 연결해야합니다.

+0

Aah. 나는 그렇게 두려워했다. 해명 해줘서 고마워. 라이브러리의 내 보낸 헤더에 포함시키지 않아도이를 피할 수 있습니까? – Rubin

관련 문제