2010-08-04 3 views
0

내가 제작 한 타사 정적 라이브러리 (출시 버전)를 사용하고 있습니다. 이제, 저는 제 자신의 정적 라이브러리를 구축하고있었습니다 (제 3 자 정적 라이브러리와 함께하고 싶었던 기능을 추가했습니다). 저의 도서관은 훌륭한 배포판을 만들었습니다. 그러나, 이제는 vs2008에서 테스트 응용 프로그램을 만들었을 때 내가 사용했던 compositelib.lib를 만들 때 외부 라이브러리 (이 라이브러리를 사용하고있어 라이센스가 문제가되지 않는 무료 정적 라이브러리)와이 라이브러리를 공유하려고했습니다. lib.exe를 통해 내 정적 라이브러리 + 타사 라이브러리를 얻습니다. 그러나이 일을 나는 많은 lnk2001을 받고있는 것 같습니다. 수동으로 내가 obj를 추가하려고 할 때 내가 놓친 것 같아요. 이미 내가 만든 정적 라이브러리의 일부라고합니다. 그래서 내가 그 obj를 꺼내면 lnk2001 미해결 링크가 나타납니다. 그 밖에 무엇을해야할지 모르겠습니다.visual studios 2008 도서관 문제

:

은 그래서 난 그냥 테스트 응용 프로그램에 내 정적 lib 디렉토리를 사용하고 때 난 내 정적 lib 디렉토리를 사용하는 방법에 대한 예제로 보여 타사와 공유하는 것 같다 ... 다음과 같은 말한다

lnk2005 이미 mystaticlib (test.obj)가 정의되어 있습니다. 압도적으로 단지이 테스트입니다 .obj는 lnk2005의 모든 경우에 대해보고됩니다.

오류 11 오류 LNK2005 : "public : class std :: basic_string, class std :: allocator> & __thiscall std :: allocator :: operator = (class std :: basic_string, class std :: allocator> const &) "mylib에 이미 정의되어있는"(?? 4? $ ​​basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ QAEAAV01 @ ABV01 @@ Z) .lib (cryptlib.obj) msvcprt.lib TestApp

답변

0

이 경우 ok 대답은 내가 vs2008의 설정을 엉망으로 만들고 있다는 것입니다. 코드 생성시 정적 라이브러리를 만들 때 해당 다중 스레드/mt./mt 설정이 끝까지 사용되었는지 확인해야합니다.