2011-03-30 1 views
1

내 문제는 Visual Studio 정적 라이브러리 링커는 상대 경로를 하드 코드하고이 문제가 나중에 해당 정적 라이브러리에 대해 다른 디렉터리에서 연결될 때 발생한다고 생각합니다.Visual Studio 정적 라이브러리 컴파일러 하드 코드 상대 경로

다음은 내가하려는 일입니다.

  • 나는 도서관 DLL을 가지고 있는데, base.dll이라고합니다.
  • 이 dll : application.exe와 연결되는 응용 프로그램이 있습니다. 이 응용 프로그램의 단위 테스트를 작성하기 위해 응용 프로그램을 정적 라이브러리 (application.lib)로 컴파일합니다.
  • 나는 application.lib와 연결되는 testing.dll을 컴파일하는 테스트 프로젝트를 가지고 있습니다.
  • 마지막 단계에서 testing.dll이 아닌 application.exe의 상대 경로를 사용하기 때문에 LNK1104 (파일을 열 수 없음)와의 연결이 실패합니다. Testing.dll은 이미이 프로세스에서 이전에 base.dll에 성공적으로 연결되었습니다.

    제안 사항?

    +2

    실제적이고 완전한 오류 메시지와 이러한 파일이있는 곳의 경로는 질문에 답할 수 있습니다. 지금은 링커가 열 수 없다고 말하는 파일조차도 알 수 없습니다. –

    답변

    0

    정적 라이브러리를 만들 때 트릭이 base.dll에 연결되지 않고 testing.dll을 빌드 할 때만 링크됩니다.

    0

    각 프로젝트의 "라이브러리 디렉토리"대화 상자에서 "부모 또는 프로젝트 기본값으로부터 상속"을 확인하십시오.

    나는 내 자신의 라이브러리 프로젝트와 비슷한 문제가 있었으며 거기에는 많은 문서가 없다.