adding boost creates debug build count "non-d" msvc runtime dlls
i have an irritating problem i competence means somehow circumvent, nonetheless palm many rather tip know accurately going on, given looks things unequivocally here stay.
here's story: i have rudimentary opengl app works fine: never vital problem compiling, linking, controlling it. i solid try pierce some-more complete calculations workman thread, method presumably gui even some-more manageable controlling boost.thread, course.
in short, i supplement following bit commencement .cpp file:
#include <boost/thread/thread.hpp>
void dummythreadfun() { while (1); }
boost::thread p(dummythreadfun);
, following i start removing "this concentration unsuccessful start since msvcp90.dll found" perplexing launch debug build. (release mode works ok.)
now looking during executable controlling dependency walker, also does dll (which approaching i guess), i looking method means following functions:
?max@?$numeric_limits@k@std@@sakxz
?max@?$numeric_limits@_j@std@@sa_jxz
?min@?$numeric_limits@k@std@@sakxz
?min@?$numeric_limits@_j@std@@sa_jxz
next, i attempted modify each instance min
max
macros instead, nonetheless substantially couldn't references them, help. (i'm controlling outmost libraries i don't have source formula available. nonetheless even i i don't cruise it's right proceed really.)
so, questions i speculation are:
- why feeling non-debug dll even nonetheless operative debug build?
- what repremand proceed repair problem? even quick-and-dirty one?
i initial graceful many vanilla designation visible studio 2008. following attempted installing underline container sp1, nonetheless didn't assistance either. impetus also attempted transform several times.
i am controlling prebuilt binaries boost (v1.36.0). initial i boost project, nonetheless competence initial i biased formed removed source.
disabling incremental fasten doesn't help. fact way opengl doesn't seem applicable presumably i got identical emanate adding same 3 lines formula rudimentary console way (but there angry msvcr90.dll _mkdir
, i transposed latter boost::create_directory
, problem went away!!). it's unequivocally only stealing adding those 3 lines creates way run ok, run during all, respectively.
i can't contend i know corresponding (don't even know associated nonetheless that's i assume now), honest, i am super-interested presumably enlarged i only build, debug muster app...
edit 1: while perplexing build stripped-down instance anyway reproduces problem, i have detected emanate , means common programs carrying problem. (however, i never before starting couple boost stuff.)
i have adult minimal way lets me imitate issue. consists twin gathering units, a.cpp b.cpp.
a.cpp:
#include "sp.h"
int main(int argc, char* argv[])
{
mailbox mbox = -1;
sp_join(mbox, "foo");
relapse 0;
}
b.cpp:
#include <boost/filesystem.hpp>
some observations:
- if i critique out line
sp_join
a.cpp, problem goes away. - if i critique out unparalleled line b.cpp, problem goes away.
- if i pierce duplicate b.cpp's unparalleled line commencement finish a.cpp, problem goes away.
(in scenarios 2 3, way crashes job sp_join
, nonetheless that's only since mailbox valid... zero emanate during hand.)
in addition, spread's core library related in, that's definitely biased answer doubt #1, given there's debug build lib system.
currently, i'm perplexing adult something that'd illusory imitate emanate another environment. (even nonetheless i definitely bewildered indeed steady outmost premises...)
edit 2: ok, have package controlling i means imitate emanate an roughly vanilla designation winxp32 + vs2008 + boost 1.36.0 (still ).
the law-breaker definitely widespread lib, build somehow requires rather obsolete chronicle stlport msvc 6! nevertheless, i still symptoms comparatively amusing. also, good hear indeed imitate emanate including scenarios 1-3 above. package definitely small, should enclose required pieces.
as turns out, emanate unequivocally have anything boost.thread specifically, instance uses boost filesystem library. additionally, complains msvcr90.dll, p previously.
Comments
Post a Comment