2011-02-23 2 views
4

Windows에서 정의되지 않은 기능의 "백업"으로 후속 빌드에서 사용할 수있는 정적 라이브러리 (.lib)를 만들고 싶습니다.기본 기능이있는 Windows 정적 라이브러리

FOO 
BAR 

내가 FOO 만 정의하고 FOOBAR를 export 할 필요가 DLL에 내장 될 다른 프로그램이 있습니다

예를 들어의 난에 대한 정의가 foobar.lib가 있다고 가정 해 보자. foobar.lib을 사용하여 결과 DLL에서 BAR의 기본 정의를 자동으로 내보내고 foobar.lib의 FOO의 정의를 무시할 수 있기를 원합니다.

나는 foobar.lib을 링커에 보내려고했지만 여러 정의 된 기호 오류가 발생합니다. (/ FORCE는이를 무시하지만 예상대로 작동하지 않을 것이라고 경고합니다.) 또한 /NODEFAULTLIB:foobar.lib를 사용하여 시도했지만 라이브러리를 완전히 무시하고 BAR은 정의되지 않았습니다.

사용자가 플러그인을 작성하고 플러그인에 필요한 모든 내보내기를 정의 할 필요가 없도록이 작업을 수행하는 응용 프로그램 (Abaqus)을 사용하기 때문에이를 수행하는 방법이 거의 확실합니다. DLL에. 그리고/FORCE 옵션을 사용하지 않습니다.

답변

2

솔루션을 찾았습니다 (유일한 해결책인지 확실하지 않습니다).

하나의 오브젝트 파일 (foobar.obj)을 사용하여 foobar.lib에 FOOBAR을 정의하려고했습니다. foo.obj와 bar.obj로 나누어서 foobar.lib 파일을 만들면 링커가 해당 .obj 파일을 효과적으로 무시할 수 있습니다.

따라서 짧은 대답은 정적 라이브러리의 개체 파일 당 하나의 함수입니다.