QuantLib Xll compilation / Linker error

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

QuantLib Xll compilation / Linker error

JeJu83 .
Hi all,

first of all thanks for providing the community with QuantLib. I spend many great hours having fun with the library.

Lately I started creating a .xll, which is based upon a modified version of QuantLib. If I compile some of my routines in visual studio 2012 as a test.exe, everything runs perfectly well.

Unfortunately if I try to compile the same routines as .xll, I come up with the following linker error.

1>LINK : fatal error LNK1104: cannot open file 'QuantLib-vc110-mt-sgd.lib'

After doing some research on the net, I encountered as a possible source of that error, that QuantLib could be built in release mode and the xll is instead built in debug mode. Then the mismatch of these modes causes the linker error.

So I tried a few combinations:

The lib version of my QuantLib on hard drive is 'QuantLib-vc110-mt-gd.lib'

Compilation of my xll project in debug mode => linker is looking for 'QuantLib-vc110-mt-sgd.lib'

Compilation of my xll project in release mode => linker is looking for 'QuantLib-vc110-mt-s.lib'

As you can see in any case there is no match at all.

Honestly I am bit surprised by the problem and compared all my project properties to a running quantlib example, which compiles as an .exe, but I don't have a clue yet.


In addition I alignedthe properties between QuantLib

( cf C/C++/Code Generation/Runtime Library = /MDd)

and my little xll project. In doing so LNK1104 does not pop up again, but just another bunch of linker errors (e.g.




xll.lib(dllmain.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in function.obj


Is there a simple solution to the problem(, which does not involve rebuilding the whole QuantLib in order to get the right lib name)?

Many thanks,

Jens


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial! http://pubads.g.doubleclick.net/
gampad/clk?id=1444514301&iu=/ca-pub-7940484522588532
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: QuantLib Xll compilation / Linker error

Luigi Ballabio
Hi,
    aligning the properties as you did should work. Did you recompile your xll after changing them?

Luigi


On Mon, Apr 11, 2016 at 4:44 PM JeJu83 . <[hidden email]> wrote:
Hi all,

first of all thanks for providing the community with QuantLib. I spend many great hours having fun with the library.

Lately I started creating a .xll, which is based upon a modified version of QuantLib. If I compile some of my routines in visual studio 2012 as a test.exe, everything runs perfectly well.

Unfortunately if I try to compile the same routines as .xll, I come up with the following linker error.

1>LINK : fatal error LNK1104: cannot open file 'QuantLib-vc110-mt-sgd.lib'

After doing some research on the net, I encountered as a possible source of that error, that QuantLib could be built in release mode and the xll is instead built in debug mode. Then the mismatch of these modes causes the linker error.

So I tried a few combinations:

The lib version of my QuantLib on hard drive is 'QuantLib-vc110-mt-gd.lib'

Compilation of my xll project in debug mode => linker is looking for 'QuantLib-vc110-mt-sgd.lib'

Compilation of my xll project in release mode => linker is looking for 'QuantLib-vc110-mt-s.lib'

As you can see in any case there is no match at all.

Honestly I am bit surprised by the problem and compared all my project properties to a running quantlib example, which compiles as an .exe, but I don't have a clue yet.


In addition I alignedthe properties between QuantLib

( cf C/C++/Code Generation/Runtime Library = /MDd)

and my little xll project. In doing so LNK1104 does not pop up again, but just another bunch of linker errors (e.g.




xll.lib(dllmain.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in function.obj


Is there a simple solution to the problem(, which does not involve rebuilding the whole QuantLib in order to get the right lib name)?

Many thanks,

Jens

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial! http://pubads.g.doubleclick.net/
gampad/clk?id=1444514301&iu=/ca-pub-7940484522588532
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial! http://pubads.g.doubleclick.net/
gampad/clk?id=1444514301&iu=/ca-pub-7940484522588532
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: QuantLib Xll compilation / Linker error

JeJu83 .
Good evening,

I resolved the issue by setting the runtime library settings to Multi-threaded Debug (/MTd) for my project, the quantlib which is in line with xll.lib's runtime library settings.

Many thanks,

Jens



2016-04-11 17:07 GMT+02:00 Luigi Ballabio <[hidden email]>:
Hi,
    aligning the properties as you did should work. Did you recompile your xll after changing them?

Luigi


On Mon, Apr 11, 2016 at 4:44 PM JeJu83 . <[hidden email]> wrote:
Hi all,

first of all thanks for providing the community with QuantLib. I spend many great hours having fun with the library.

Lately I started creating a .xll, which is based upon a modified version of QuantLib. If I compile some of my routines in visual studio 2012 as a test.exe, everything runs perfectly well.

Unfortunately if I try to compile the same routines as .xll, I come up with the following linker error.

1>LINK : fatal error LNK1104: cannot open file 'QuantLib-vc110-mt-sgd.lib'

After doing some research on the net, I encountered as a possible source of that error, that QuantLib could be built in release mode and the xll is instead built in debug mode. Then the mismatch of these modes causes the linker error.

So I tried a few combinations:

The lib version of my QuantLib on hard drive is 'QuantLib-vc110-mt-gd.lib'

Compilation of my xll project in debug mode => linker is looking for 'QuantLib-vc110-mt-sgd.lib'

Compilation of my xll project in release mode => linker is looking for 'QuantLib-vc110-mt-s.lib'

As you can see in any case there is no match at all.

Honestly I am bit surprised by the problem and compared all my project properties to a running quantlib example, which compiles as an .exe, but I don't have a clue yet.


In addition I alignedthe properties between QuantLib

( cf C/C++/Code Generation/Runtime Library = /MDd)

and my little xll project. In doing so LNK1104 does not pop up again, but just another bunch of linker errors (e.g.




xll.lib(dllmain.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in function.obj


Is there a simple solution to the problem(, which does not involve rebuilding the whole QuantLib in order to get the right lib name)?

Many thanks,

Jens

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial! http://pubads.g.doubleclick.net/
gampad/clk?id=1444514301&iu=/ca-pub-7940484522588532
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev