Issue #15 invalid

Linking errors when building on VS2010

Anonymous avatarAnonymous created an issue

Hey guys, great work on these tutorials. I can't link them properly on vs2010, and it's all I have access to since I'm a student. I'll post the specific linker errors below. I don't think it's a configuration error since I haven't really modified my visual studio too much.

Comments (6)

  1. Anonymous
    1>------ Build started: Project: Tut 01 Main, Configuration: Debug Win32 ------
    1>Build started 1/28/2011 11:31:14 PM.
    1>InitializeBuildStatus:
    1>  Touching "obj\Debug\Tut 01 Main.unsuccessfulbuild".
    1>ClCompile:
    1>  tut1.cpp
    1>  framework.cpp
    1>  Generating Code...
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) already defined in libcpmtd.lib(stdthrow.obj)
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPBD@Z) already defined in libcpmtd.lib(xthrow.obj)
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range@std@@YAXPBD@Z) already defined in libcpmtd.lib(xthrow.obj)
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __int64 __thiscall std::ios_base::width(__int64)" (?width@ios_base@std@@QAE_J_J@Z) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __int64 __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,__int64)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __int64 __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBE_JXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in framework.obj
    1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "bool __cdecl std::uncaught_exception(void)" (?uncaught_exception@std@@YA_NXZ) already defined in libcpmtd.lib(uncaught.obj)
    1>bin\Tut 01 MainD.exe : fatal error LNK1169: one or more multiply defined symbols found
    1>
    1>Build FAILED.
    1>
    1>Time Elapsed 00:00:03.81
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    
  2. Jason McKesson

    The build process has changed significantly since the 0.0.2 release. The recently added 0.0.3 release seems to work just fine.

    Unfortunately, I didn't tag the 0.0.2 release, so I couldn't test it with VS2010 to see if it built (I use VS2008 as my primary development platform). So I don't know if there was an actual build problem or if the user ran into some local trouble.

    In any case, until the submitter of the bug returns and verifies that it is still present, I'm putting this bug on hold.

  3. Anonymous

    Original Poster here, tutorial 0.0.3 did not rectify the issue.

    Building FreeGlut in VS2010 by opening VS2008 static sln. Conversion with no errors. Debug and Release succeeded for FreeGlut project.

    FreeImage converted from vs2008 to vs2010 sln. Conversion with no errors. Batch build, selected all. Build Failed: Project: FreeImage, Configuration: Release Win32.

    TinyXML builds succeeded. GlLoader builds succeeded. Neither have outstanding information.

    AllTutorials 2010 sln generated from main directory premake4.lua file.

    Framework build succeeded.

    Tutorial 1 building failed.

    Link to FreeImage failure log: http://pastebin.com/BQrFyAks

    Link to Tutorials 01 failure log: http://pastebin.com/TNMSuvNT

  4. Anonymous

    OP again, Issue resolved by adding /NODEFAULTLIB:libcmtd.lib to FreeImage release build process. Not sure why VS is adding that debug lib anyways.

  5. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.