locked
Recompiling topoedit RRS feed

  • Question

  • I'm trying to recompile topoeditusing Visual Studio 2012 (RC, still got 42 days to use it).  

    After VS2012 auto converted, the tedutil project would make successfully.  However, the topoedit project fails.

    For example, I get five link errors, pasted into this post below the "----" separator.  I've investigated the first one, complaining that TEDGetAttributeListLength() is missing.  I see a reference to it in topoedit project's PropertyView.cpp.  But I don't see how it's supposed to get it or why the link error occurs.  The project tedutil appears to make a dll.  I *did* regsvr32 the dll after I remade tedutil.  I'm ignorant about what else I might do.

    Searching all the source, it seems like the unresolved external references must have something to do with the linker wanting to find the DLL and not finding it.  My knowledge in this area is pretty much two decades old and faded from my memory.

    Please help!

    Thanks.

    ----

    1>PropertyView.obj : error LNK2019: unresolved external symbol "unsigned long __cdecl TEDGetAttributeListLength(void)" (?TEDGetAttributeListLength@@YAKXZ) referenced in function "public: long __thiscall CPropertyEditWindow::OnAdd(unsigned short,unsigned short,struct HWND__ *,int &)" (?OnAdd@CPropertyEditWindow@@QAEJGGPAUHWND__@@AAH@Z)
    1>PropertyView.obj : error LNK2019: unresolved external symbol "wchar_t const * __cdecl TEDGetAttributeName(unsigned long)" (?TEDGetAttributeName@@YAPB_WK@Z) referenced in function "public: long __thiscall CPropertyEditWindow::OnAdd(unsigned short,unsigned short,struct HWND__ *,int &)" (?OnAdd@CPropertyEditWindow@@QAEJGGPAUHWND__@@AAH@Z)
    1>PropertyView.obj : error LNK2019: unresolved external symbol "unsigned short __cdecl TEDGetAttributeType(unsigned long)" (?TEDGetAttributeType@@YAGK@Z) referenced in function "public: long __thiscall CPropertyEditWindow::OnAdd(unsigned short,unsigned short,struct HWND__ *,int &)" (?OnAdd@CPropertyEditWindow@@QAEJGGPAUHWND__@@AAH@Z)
    1>PropertyView.obj : error LNK2019: unresolved external symbol "enum TED_ATTRIBUTE_CATEGORY __cdecl TEDGetAttributeCategory(unsigned long)" (?TEDGetAttributeCategory@@YA?AW4TED_ATTRIBUTE_CATEGORY@@K@Z) referenced in function "protected: long __thiscall CPropertyAddDialog::OnCategoryChange(unsigned short,unsigned short,struct HWND__ *,int &)" (?OnCategoryChange@CPropertyAddDialog@@IAEJGGPAUHWND__@@AAH@Z)
    1>tedapp.obj : error LNK2019: unresolved external symbol _TEDCreateTopoViewer@16 referenced in function "protected: long __thiscall CTedApp::OnCreate(unsigned int,unsigned int,long,int &)" (?OnCreate@CTedApp@@IAEJIIJAAH@Z)


    Monday, December 3, 2012 11:23 PM

All replies

  • Hello,

    I got the same problem. I am trying to build topoedit using VS2010 under win7 or win8 x64 but I get the same linking errors as you do.

    I didn't find any answers to this online. Did you manage to build the project?

    Regards.

    Thursday, June 13, 2013 7:17 AM
  • The problem is that it cant find 'tedutil.lib'.

    When you convert the project, it gives you warnings about $(TargetPath) not matching Linker $(OutputFile), this is your clue.

    I modified Paths as follows:

     tedutil Project:

      Properties -> General

          Output Directory  =   .     (Was Debug\)

    Properties -> Linker -> General

         Output File = $(TargetName)$(TargetExt)    (Was $(OutDir)$(TargetName)$(TargetExt)

      topoedit Project:  

    Properties -> Linker -> Input

         Additional Dependencies   = Add "tedutil.lib" to the front of the list.   <<-- THIS tells topoedit where to find the enum.


    This moves the tedutil.dlll and .lib files from the tedutil\Debug & Release folders to the tedutil\ folder.  Might cause mixing up of debug and release builds, which could be fixed by using a different name for the debug build, e.g. tedutild.lib.

    Wednesday, January 15, 2014 11:29 PM