Boost logo

Boost Users :

From: Olaf Peter (ope-devel_at_[hidden])
Date: 2008-09-03 07:08:48


Hi,

I've got the linker error LNK2005
(http://msdn.microsoft.com/en-us/library/72zdcz6f(VS.80).aspx) using
MSVC80 (Studio 2005):

libboost_program_options-vc80-mt-1_35.lib(value_semantic.obj) : error
LNK2005: "public: __thiscall
boost::program_options::invalid_option_value::invalid_option_value(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &)"
(??0invalid_option_value_at_program_options_at_boost@@QAE_at_ABV?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(value_semantic.obj) : error
LNK2005: "public: virtual char const * __thiscall
boost::program_options::validation_error::what(void)const "
(?what_at_validation_error_at_program_options_at_boost@@UBEPBDXZ) ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(value_semantic.obj) : error
LNK2005: "void __cdecl boost::program_options::validate(class boost::any
&,class std::vector<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> >,class
std::allocator<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> > > > const &,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > *,int)"
(?validate_at_program_options_at_boost@@YAXAAVany_at_2@ABV?$vector_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@V?$allocator_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@@2@@std@@PAV?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@5_at_H@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(value_semantic.obj) : error
LNK2005: "private: virtual void __thiscall
boost::program_options::value_semantic_codecvt_helper<char>::parse(class
boost::any &,class std::vector<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> >,class
std::allocator<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> > > > const
&,bool)const "
(?parse@?$value_semantic_codecvt_helper_at_D@program_options_at_boost@@EBEXAAVany_at_3@ABV?$vector_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@V?$allocator_at_V?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@@2@@std@@_N_at_Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: class
boost::program_options::options_description_easy_init __thiscall
boost::program_options::options_description::add_options(void)"
(?add_options_at_options_description_at_program_options_at_boost@@QAE?AVoptions_description_easy_init_at_23@XZ)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "class std::basic_ostream<char,struct
std::char_traits<char> > & __cdecl
boost::program_options::operator<<(class std::basic_ostream<char,struct
std::char_traits<char> > &,class
boost::program_options::options_description const &)"
(??6program_options_at_boost@@YAAAV?$basic_ostream_at_DU?$char_traits_at_D@std@@@std@@AAV23_at_ABVoptions_description_at_01@@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: __thiscall
boost::program_options::options_description::options_description(unsigned
int)" (??0options_description_at_program_options_at_boost@@QAE_at_I@Z) ist
bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: __thiscall
boost::program_options::options_description::options_description(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &,unsigned int)"
(??0options_description_at_program_options_at_boost@@QAE_at_ABV?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@I_at_Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: class
boost::program_options::options_description_easy_init & __thiscall
boost::program_options::options_description_easy_init::operator()(char
const *,char const *)"
(??Roptions_description_easy_init_at_program_options_at_boost@@QAEAAV012_at_PBD0@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: class
boost::program_options::options_description_easy_init & __thiscall
boost::program_options::options_description_easy_init::operator()(char
const *,class boost::program_options::value_semantic const *,char const
*)"
(??Roptions_description_easy_init_at_program_options_at_boost@@QAEAAV012_at_PBDPBVvalue_semantic_at_12@0_at_Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(options_description.obj) :
error LNK2005: "public: class
boost::program_options::options_description & __thiscall
boost::program_options::options_description::add(class
boost::program_options::options_description const &)"
(?add_at_options_description_at_program_options_at_boost@@QAEAAV123_at_ABV123@@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.
libboost_program_options-vc80-mt-1_35.lib(convert.obj) : error LNK2005:
"class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __cdecl boost::program_options::to_internal(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &)"
(?to_internal_at_program_options_at_boost@@YA?AV?$basic_string_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@ABV34@@Z)
ist bereits in
boost_program_options-vc80-mt-1_35.lib(boost_program_options-vc80-mt-1_35.dll)
definiert.

using the linker options:

/O2 /Ob2 /I "C:\Cpp\boost_1_35_0" /I ...
/D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "BOOST_ENABLE_ASSERT_HANDLER=1"
/D "QT_DLL" /D "QT_GUI_LIB" /D "QT_CORE_LIB" /D "QT_NO_DEBUG" /D
"CMAKE_INTDIR=\"Release\"" /D "_MBCS" /FD /EHsc /MD
/Fo"eda.dir\Release\\" /Fd"D:/work/build/Release/eda.pdb" /W3 /nologo /c
/TP /errorReport:prompt

Any ideas what happened here?

Thanks,
Olaf


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net