2011-03-23 8 views
0

여러 프로젝트가있는 하나의 솔루션이 있습니다. ProjectA는 exe 파일을 생성하고 Project B는 .lib 파일을 생성합니다. 나는 ProjectA가 ProjectB에 의존한다는 것을 확인했다. 그래서 ProjectB는 ProjectA 전에 항상 컴파일 될 것이다.동일한 솔루션의 프로젝트 간 링크 문제

ProjectB를 컴파일하면 모든 것이 잘됩니다. 그러나 ProjectA를 컴파일하면 B의 일부 메소드가 존재하지 않는다는 오류가 링크됩니다. 나는 점검했고 그것이 존재한다.

¿ 무슨 일 이니?

도움 주셔서 감사합니다.

+1

실제로는 메서드가 실제로 존재하지 않을 가능성이 높습니다. 'const' 나 뭔가를 놓친 것일까? 정확한 링커 오류 메시지뿐만 아니라 오류 (함수 및 참조 코드)를 발생시키는 코드를 게시하십시오. –

+0

충분하지 않습니다 (내 의견을 다시 읽어보십시오). 또한 코드를 주석으로 게시하지 말고 새로운 정보를 추가하는 질문을 직접 편집하십시오. –

+0

두 프로젝트가 C++로 코딩되어 있습니까? 한 프로젝트에서 C를 사용하고 다른 프로젝트에서 C++을 사용한다면'extern "C"'로 함수를 선언해야합니다. [더 많은 정보는 여기] (http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html) –

답변

4

프로젝트 속성, 링커, 일반 : "라이브러리 종속성 링크"를 "예"로 설정하십시오.

+0

좋아, 그게 효과가 있었지만 추가해야 했어./FORCE : MULTIPLE to additional options 링커 명령 줄에서 LIBCMTD.lib과 함께 다른 링크 오류를 제공했기 때문에 – Sara

+0

@Sara : 두 프로젝트가 동일한 런타임을 사용하도록 설정해야합니다. 그렇지 않으면 재미있는 오류가 발생할 수 있습니다. "성질, C/C++, 코드 생성, 런타임 라이브러리" – Erik

+0

하지만 런타임 오류가 발생합니다. R6030 - CRT가 초기화되지 않았습니다 ... – Sara

관련 문제