2010-03-07 2 views
1

두 개의 라이브러리 (A와 B)가 필요한 Visual C++ 2008 프로젝트에 작업 중이며 두 라이브러리 모두 특정 .lib (C)를 사용하여 컴파일됩니다. 프로젝트를 컴파일 할 때 C를 다시 요청하고 추가 라이브러리에서 지정합니다. 그런 다음 모든 것이 연결 단계가 될 때까지 계속됩니다. 연결 단계에서는 두 번 이상 정의 된 외부 기호에 오류가 발생합니다. 연결에서 제외 할 수있는 방법이 있습니까? 종속성을 상속 할 때 .lib를 두 번 포함시키지 않으려면 어떻게해야합니까?

당신에게
마소

+0

어떤 오류 메시지가 나타 났습니까? – bk1e

+0

로그가 더 이상 없으며 내 게시물을 내 게시물에 읽고 링커 호출에/NODEFAULTLIB : library 옵션을 추가하여 해결했습니다. – tunnuz

답변

2

이 라이브러리 (디버그/릴리스, MT/ST 등)의 두 가지 버전을 추가하는 것처럼이 소리 감사합니다. 그렇지 않으면 링커는 두 번째 것을 무시합니다.

+0

A와 B는 모두 동일한 C.lib에 연결됩니다. – tunnuz

+0

@tunnuz : 외부 기호가 링커가 해당 lib에서도 소리 치고 있습니까? 아니면 런타임 라이브러리에서 왔습니까? 후자의 경우 RTL의 다른 버전에서 연결하려고한다는 뜻입니다. – sbi

+0

심볼은 공유 .lib에 있습니다. – tunnuz

0

링커 옵션에/NODEFAULTLIB : library를 지정하여이 문제를 해결했습니다. 이것이 무엇을 의미해야하는지 모르겠다 ... Visual Studio에서 제안했다.

관련 문제