Sunday 15 February 2015

visual studio 2012 - Linking to tcl85.lib with SWIG via MSVS (autogenerated by CMake) -


It's kind of like that poor cowboy (do I have sex right there?) In the link I can use, except this one year and I have MSVS 2012.

Description

CKK C: ... \ Tcl \ lib \ tcl85 .bib on the dependency list for my binary (I was generated. Check in Vcproj file - this is). Despite this, the linkir errors are many and in this form:

Original language: DLL_wrap.obj: Error LNK2019: Unsolved external symbol __imp__Tcl_ [some command-name] _SWIG_Tcl_ [some-other-command-name] referenced in the function.

Then I see the header file listed in the dependency list for my project in MSVS: version is #define 8.5 as it matches that library Is the account I am trying to link. I tried to search tcl85.lib with dependency walker. Apparently it can not explore the type of file I run dumpbin.exe on it ... and there are all the faults in the .lib file, but from the following:

___ Imp_Tcl_ [some command-name]

contains all the symbols ... but each underscores are missing in them!

I then searched the libtcl85.dll.a file, given by Tcl distro of ActiveState used in Sigwin, and the symbols look like this:

__ So, this additional underscore, and binary links are correctly on signin / P>

...

This is one of those moments where I am throwing my hands in the air and thinking, "What does it do?" Done glory in all its simplified grammar. In the same swig interface file Cygwin with the same CMake generates a module successfully. But the development of Saigwin is a pain in the donkey as it is too slow (up to 5-8 times in the more native-windows-eye systems).

What happens next?

Do I try to generate swig with dependency with a low underscore? if so, how? Will I give up and file a bug report? If so, where? Is this a bug in ActiveState Tcl? Is this a bug in swing? Is not this a bug and I'm just spoiling?

The state was lost due to the lack of state?

So, as I was writing my question, I started thinking about all the options How could it be wrong. Then I remembered that CMK selects the 32-bit version of MSV by default, now I feel quite a bit confused, but as someone else clearly has a similar problem on the Activestate platform, For the sake of this small, small, your bits reminder, I'm leaving my answer ...

As it turned out, with Selection of 64-bit version of MSVS cmake -G "Visual Studio 2012 Win64" Shcit everything linking fine binary went successfully loaded Tclsh.

About trying to add 32-bit and 64-bit binary together, I would expect a more comprehensive error message from my creation tool, though ...

No comments:

Post a Comment