2011-01-19 8 views
2

MS Visual Studio 2005에서 대용량 C++ 응용 프로그램을 빌드 할 때 연결 시간을 줄이려고합니다. 현재 링크 시간이 7에서 100 초이며, 일반적으로 7에 가깝습니다 (운이 좋을 것 같습니다).MS Visual Studio의 부분 링크?

내 응용 프로그램은 약 20 개의 정적 라이브러리로 구성되어 있습니다. 그 중 하나는 크고 거의 변경되지 않고 다른 다른 라이브러리에서 사용하지 않는 대형 타사 라이브러리에 의존합니다. 나는 그것이 부분적인 링크가 건축 시간을 개량 할 고전적인 케이스다고 생각한다. "부분 링크"란 리눅스에서 ld -r이 무엇을 의미하는지 의미합니다.

"부분 링크"는 MS Visual Studio에서 가능합니까? 나는 그들의 문서에서 그것을 찾지 못했지만 아마도 그것을 다른 이름이라고 부르거나 아마 숨겨진 기능이라고 할 수 있습니다.

부분 링크에 대한 내 추측은 의미가 있습니까? 정말로 도움이 될만한 기회가 있습니까?

답변

1

/INCREMENTAL 스위치를 통해 linking incrementally입니까?

당신이 할 수있는 또 다른 일은 간접적 인 추가 단계를 거치는 것입니다 : 정적 라이브러리를 DLL로 감싸고 DLL을 통해 응용 프로그램에서 사용되는 모든 것을 노출하십시오. 그 DLL은 비교적 드물게 구축 될 수 있으며 DLL은 훨씬 저렴할 수 있습니다.

+0

나는 이미 증분 연결을 사용하고 있습니다. 이것이 내가 구하는 것과 동등하다면 나는 운이 없다. – anatolyg

0

이것은 약간의 것처럼 보일 수 있지만 내 경우에는 모듈 정의 파일 (foo.def)을 사용하고 있습니다. Microsoft에서 file format specification은 DLL 파일 인 에만 사용해야한다고 암시하지만 정적 라이브러리에도 완벽하게 작동합니다. 그래서 라이브러리를 DLL으로 변경해야했습니다.

이렇게하면 최소한의 링크 시간이 7 초에서 2 초로 단축되었습니다 (아마 평균 링크 시간도 단축되었습니다).