Release vs. Debug mode VS2008

Dear Rooters,

I work with VS2008 Professional editions and ROOT 5.26 (under Windows 7 OS). I noticed that I work in “Debug” mode. Trying to switch to (in Configuration Manager) “Release” mode, I received a bunch of linker error:

[size=85]1>Linking…
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: __thiscall TRandom::TRandom(unsigned int)” (??0TRandom@@QAE@I@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual __thiscall TRandom::~TRandom(void)” (??1TRandom@@UAE@XZ)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual void __thiscall TRandom::SetSeed(unsigned int)” (?SetSeed@TRandom@@UAEXI@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: __thiscall ROOT::Math::AdaptiveIntegratorMultiDim::AdaptiveIntegratorMultiDim(double,double,unsigned int)” (??0AdaptiveIntegratorMultiDim@Math@ROOT@@QAE@NNI@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual void __thiscall ROOT::Math::AdaptiveIntegratorMultiDim::SetFunction(class ROOT::Math::IBaseFunctionMultiDim const &)” (?SetFunction@AdaptiveIntegratorMultiDim@Math@ROOT@@UAEXABVIBaseFunctionMultiDim@23@@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual double __thiscall ROOT::Math::AdaptiveIntegratorMultiDim::Integral(double const *,double const *)” (?Integral@AdaptiveIntegratorMultiDim@Math@ROOT@@UAENPBN0@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual void __thiscall ROOT::Math::AdaptiveIntegratorMultiDim::SetRelTolerance(double)” (?SetRelTolerance@AdaptiveIntegratorMultiDim@Math@ROOT@@UAEXN@Z)
1>root_example_new.obj : error LNK2001: unresolved external symbol “public: virtual void __thiscall ROOT::Math::AdaptiveIntegratorMultiDim::SetAbsTolerance(double)” (?SetAbsTolerance@AdaptiveIntegratorMultiDim@Math@ROOT@@UAEXN@Z)
1>stdafx.obj : error LNK2001: unresolved external symbol “public: __thiscall TVersionCheck::TVersionCheck(int)” (??0TVersionCheck@@QAE@H@Z)
1>C:\Users\Administrator\Documents\My Dropbox\root_example_new\Release\root_example_new.exe : fatal error LNK1120: 9 unresolved externals[/size]

As I understand, there is some path to Linker missing, but unfortunately I do not know how to fix this problem.

P.S. Is there any difference in performance (speed) between “Debug” and “Release” mode ?

Thank you,

A.K.

Late reply, but in case this is not yet solved:

[quote=“Pomeron”]Dear Rooters,

I work with VS2008 Professional editions and ROOT 5.26 (under Windows 7 OS). I noticed that I work in “Debug” mode. Trying to switch to (in Configuration Manager) “Release” mode, I received a bunch of linker error:

.
.
.

As I understand, there is some path to Linker missing, but unfortunately I do not know how to fix this problem.[/quote]
You should check the “Linker->Input->Additional Dependencies”-setting in project properties. Since the debug-version builds fine, comparing that setting between debug and release configs may give you hint what to do. Make sure though that the release build won’t get linked with ROOT debug-libraries.

[quote=“Pomeron”]
P.S. Is there any difference in performance (speed) between “Debug” and “Release” mode ?[/quote]
Yes. It depends on details, but it is often significant; for example see related mention in Boosts documentation: http://www.boost.org/doc/libs/1_48_0/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html. While those numbers as just about the performance of certain functions, the performance difference for the whole application can also be significant.