I am trying to install ODE but I keep get this error:
ode.lib(convex.obj) : error LNK2019: unresolved external symbol
"public: void __thiscall std::_String_base::_Xran(void)const " (?
_Xran@_String_base@std@@QBEXXZ) referenced in function "public: class
std::basic_string<char,struct
Anybody know what the problem is? I spent 4 hours trying to find
out ... no luck.
Which version are you using? seems like STL is not being added to the link libraries, though I don't think convex.cpp references std::string at all, so thats odd, I don't think it ever did, but it could had in the past.
I have to say that my approach to using ODE in any serious project is to dump the sources into a folder in my IDE (in my case xcode but I'm sure it wouldn't matter) and treat it as part of the project. It's such a small library and IDE's always have smart compilation and linkage that I don't see any noticeable performance hit and the real plus is that I can step through the ODE code with the debugger, and I can easily search the ODE sources. This is absolutely the best documentation (educational too!) and it means that I can change compilation options easily - and in my case I switch to Intel compilers for the final build too. The only issue is getting the right config.h but it's not too tricky.
> Thanks for the replies, but it still doesn't work :-(
> I'm using ODE 0.9 binary. I also tried building 0.9 myself but I got > the same error messages. Does 0.9 have any issues with Visual C++ 2008 > Express?
> On Mar 24, 1:25 pm, "colmsl...@gmail.com" <colmsl...@gmail.com> wrote: >> I think this might help you:http://docs.google.com/View? >> docid=ddc66j49_5hbztx3
deltawing wrote: > Thanks for the replies, but it still doesn't work :-(
> I'm using ODE 0.9 binary. I also tried building 0.9 myself but I got > the same error messages.
Do I understand correctly that the linker problem occurs when you're trying to use one of the prepackaged lib files from your own client project? Am I also correct that 0.9 builds successfully for you with VC++ 2008 Express, but then when you try to use the resulting lib file in your project, you get the linker error?
If that's correct, it sounds like your project is using a different version of the runtime library than the ODE project is using. See if this helps: Go to the project properties dialog; expand "Configuration Properties", then "C/C++", and then choose "Code Generation". In the right-hand pane, set "Runtime Library" to "Multi-threaded Debug DLL (/MDd)".
Let us know whether there's any improvement or whether your project was already set this way.
> Does 0.9 have any issues with Visual C++ 2008 > Express?
I just now grabbed the SVN head and built ODE and the demos in VC++ 2008 Express, and then ran the box stack demo, which ran fine.
Dave Grundgeiger wrote: > I just now grabbed the SVN head and built ODE and the demos in VC++ 2008 > Express, and then ran the box stack demo, which ran fine.
I just did the same with the 0.9 release, and all was fine.
Bill Sellers wrote: > I have to say that my approach to using ODE in any serious project is > to dump the sources into a folder in my IDE (in my case xcode but I'm > sure it wouldn't matter) and treat it as part of the project. It's > such a small library and IDE's always have smart compilation and > linkage that I don't see any noticeable performance hit and the real > plus is that I can step through the ODE code with the debugger,
If the lib was built in debug configuration and the source is available, then VS can step through the source without it being part of the client project. This is probably an option for other environments too, but I don't know.
> and I > can easily search the ODE sources.
I usually keep the ODE project open in another window for that. I just prefer to keep things separate.