Menu

Build problem

Help
2005-10-03
2013-03-22
  • MostlyHarmless

    MostlyHarmless - 2005-10-03

    I'm a bit of a newbie to both linux and C++, but the demo gives me build errors:

    g++ -c ../../demo/demo.cpp -I ../.. -I ../../.. -I /usr/include/SDL -w -O3
    In file included from ../../flatland/shapes.h:7,
                     from ../../demo/demo.cpp:8:
    ../../flatland/flatland.h: In destructor `virtual Flatland::Dynamic<G>::~Dynamic()':
    ../../flatland/flatland.h:104: error: there are no arguments to `dBodyDestroy' that depend on a template parameter, so a declaration of `dBodyDestroy' must be available
    ../../flatland/flatland.h:104: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    ../../flatland/flatland.h: In member function `void Flatland::World::GenerateContacts(const Container&)':
    ../../flatland/flatland.h:200: error: there are no arguments to `dJointGroupEmpty' that depend on a template parameter, so a declaration of `dJointGroupEmpty' must be available
    ../../flatland/flatland.h: In member function `bool Flatland::World::IsCorrupt(const Container&) const':
    ../../flatland/flatland.h:264: error: there are no arguments to `dBodyGetLinearVel' that depend on a template parameter, so a declaration of `dBodyGetLinearVel' must be available
    ../../flatland/flatland.h:265: error: there are no arguments to `dBodyGetAngularVel' that depend on a template parameter, so a declaration of `dBodyGetAngularVel' must be available
    ../../flatland/flatland.h: In constructor `Flatland::Dynamic<G>::Dynamic(G*, dxBody*)':
    ../../flatland/flatland.h:285: error: there are no arguments to `dRFromAxisAndAngle' that depend on a template parameter, so a declaration of `dRFromAxisAndAngle' must be available
    make: *** [demo.o] Error 1

    I'm haven't got root access on this machine but I think that SDL is installed and in any case these errors don't seem to be SDL related.

    Any ideas?

     
    • MostlyHarmless

      MostlyHarmless - 2005-10-06

      I solved it. I had to add some include lines for some reason. Not sure why this compiles elsewhere without them.

       
    • Philip Rideout

      Philip Rideout - 2005-10-07

      Cool.  If you tell me which include lines you had to add, I'll add them officially.

       
    • MostlyHarmless

      MostlyHarmless - 2005-11-03

      Sorry for the delay, got a bit lost in my work. Can't remember the exact lines now but I did a diff and what it seems I did (though don't ask me why but it works) was this:
      In flatland.h:
      I removed the lines:
      #include <ode/common.h>
      #include <ode/contact.h>

      and replaced them with the lines:
      #include <ode/ode.h>
      #include <ode/src/objects.h>

      If I've missed something about the functionallity here then let me know.

      I'm using flatland (and the structure of the demo files) in my 4th year project, you may be interested (or legally obliged!) to know. I'm not too saavy on the open licensing stuff but I've read what you distribute with it and will leave your copyright notices on, if you'll allow me to proceed. You're welcome to have a look at what I'm doing if you like (I'm trying to make a walking stickman using genetic algorithms to evolve his movements). Let me know.

       
    • k0wax

      k0wax - 2006-11-25

      I did same that joelhorne, and also use -fpermissive flag with g++-4.1.1

       

Log in to post a comment.