msvc 외부 솔루션 관리 필요성에 대해서

Posted at 2010/02/02 12:41// Posted in msvc
요즘 프로젝트를 진행할 때는 외부 솔류션을 사용하는 것이 매우 흔한일입니다.

zlib, tinyxml, devil, boost, expat, freetype, wx 같은 오픈 소스 솔류션 부터
directx, nvidia-texture-tools, fbx 무료 바이너리 솔류션이나
pathengine, speedtree, granny, ipp, mss 같은 유료 바이너리 솔류션까지
하나의 프로젝트에 수십 종류의 크고 작은 외부 솔류션이 포함되게 됩니다.

각 솔류션들을 솔류션 버전, 컴파일러 버전, 쓰레드 모델, CPU 모델 등에 따라 잘 분류해 놓지 않으면
새로운 버전의 솔류션이 나와도 적용하지 못한다던지, 서로 다른 쓰레드 모델(MD, MDd, MT, MTd)간의
충돌로 인한 링크 에러나 런타임 에러가 발생하게 됩니다.

freebsd 나 linux 등에서는 운영체제 레벨에서
다양한 솔류션들을 일관성있게 사용할 수 있도록 지원을 해주는데,
윈도우의 경우는 통합적인 지원이 없는 관계로 각 솔류션들의 배포본 설치에 의존하는 경우가 많아
혼란스러운 경우가 많습니다.

상용 프로젝트의 경우는 미리 빌드된 바이너리를 배포하기 때문에 어느정도 정리가 된 경우가 많지만,
대부분의 오픈소스 프로젝트는 당시 가장 많이 사용되는 visual studio 만 지원하는 경우가 많습니다.
미리 빌드된 바이너리도 MD, MDd 인 경우가 많죠.

boost 정도가  bjam 을 사용해서 다양한 컴파일러/CPU/쓰레드 모델을 지원해주고 있습니다.


요즘 앱스토어가 등장하는 트렌드로 보아
조만간 윈도우에서도 자동화된 솔류션 관리 시스템이 채용되지 않을까 기대하고 있습니다만...
그전까지는 직접 windows ports 시스템을 구축해야 할 필요가 있습니다.







이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/02/02 12:41 2010/02/02 12:41
아래 링크에러가 발생하면 stdafx.cpp 에 해당하는 라이브러리를 연결시킨다.


more..


#pragma comment(lib, "DxErr9.lib")

---------------------------------

more..



#pragma comment(lib, "dxguid.lib")

---------------------------------

more..


#pragma comment(lib, "shell32.lib")

---------------------------------

more..


#pragma comment(lib, "comctl32.lib")

---------------------------------

more..


#pragma comment(lib, "gdi32.lib")

---------------------------------

more..



#pragma comment(lib, "user32.lib")
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/05/15 13:42 2007/05/15 13:42