Search This Blog

Sunday, June 5, 2011

#pragma comment(lib...)

Comment pragma는 comments를 object file이나 executable file에 삽입한다. lib는 이 comment를 linker에 전달하여 object module을 사용할 때 필요한 library를 linker에게 알려준다. Library name 뿐만 아니라 linker option 또한 전달 가능하다.


따라서 이곳에 정의된 library가 path에 존재하지 않을 경우 link error를 반환한다.


auto link 예제 (auto_link.hpp in libboost)


#ifndef BOOST_AUTO_LINK_NOMANGLE
#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
#  ifdef BOOST_LIB_DIAGNOSTIC
#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
#  endif
#else
#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
#  ifdef BOOST_LIB_DIAGNOSTIC
#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
#  endif
#endif




http://support.microsoft.com/kb/153901

No comments:

Post a Comment

Blog Archive