2013-04-29 3 views
9

Visual Studio 2010을 사용하여 #pragma comment (lib)에서 cpp 파일을 기준으로 경로를 지정하고 싶습니다. #pragma comment (lib)와의 상대 경로

나는 foo.cpp의에서
#pragma comment(lib, __FILE__"\\..\\foo.lib") 

을 시도하고 작동하는을 보인다. 그러나, 이것은 나에게 hackish 것처럼 보입니다.

해킹이 덜한 방법이 있습니까?

답변

6

아니요 .cpp 파일의 상대 경로 일 필요는 없습니다. 꽤 특이한 점은 .lib가 라이브러리를 사용하는 클라이언트 소스 코드의 상대 디렉토리에 배포되었다는 것을 정상적으로 보장 할 수 없다는 것입니다. 확실히 이것을 규정하는 설치 지침을 제공 할 수는 있지만.

정상적인 방법은 "foo.lib"를 지정하고 추가 라이브러리 디렉토리 설정을 사용하여 적절한 디렉토리에서 .lib 파일을 검색하도록 링커를 구성하는 것입니다. .lib는 어디에서나 배포 할 수 있지만 라이브러리 사용자는 프로젝트를 설정할 때 설정을 업데이트해야합니다. 그렇지 않으면 매우 일반적인 구성 작업입니다. 추가 종속성 설정에서 라이브러리를 지정하는 것과 별반 다르지 않습니다.

#pragma는 일반적으로 클라이언트 프로그래머가 올바른 버전의 정적 링크 라이브러리를 사용하는 데 도움이됩니다. 일반적으로 정적 .lib, 디버그 vs 릴리스 및/MT vs/MD의 4 가지 빌드를 제공해야합니다. VS 버전의 수를 곱해서 지원할 수 있습니다. 이것은 서둘러 털이 얻을 수 있습니다. _DLL, _DEBUG 및 _MSC_VER 사전 정의 된 매크로는 올바른 #pragma를 생성하는 데 도움이됩니다.