Что-то я сегодня подтормаживаю. Скинул себе исходники Box2d. Скомпилировал, просмотрел демку. Скинул хедеры в /usr/include/Box2D. Закинул libBox2D.a в папку с файлом HelloWorld.cpp, который стырил из Box2D и компилирую
g++ HelloWorld.cpp -L /home/username/laboratory/Box2D/libBox2D.a
/tmp/ccM3DeH3.o: In function `main':
HelloWorld.cpp:(.text+0x42): undefined reference to `b2World::b2World(b2Vec2 const&)'
HelloWorld.cpp:(.text+0x88): undefined reference to `b2World::CreateBody(b2BodyDef const*)'
HelloWorld.cpp:(.text+0xba): undefined reference to `b2PolygonShape::SetAsBox(float, float)'
HelloWorld.cpp:(.text+0xd3): undefined reference to `b2Body::CreateFixture(b2Shape const*, float)'
HelloWorld.cpp:(.text+0x123): undefined reference to `b2World::CreateBody(b2BodyDef const*)'
HelloWorld.cpp:(.text+0x155): undefined reference to `b2PolygonShape::SetAsBox(float, float)'
HelloWorld.cpp:(.text+0x1a0): undefined reference to `b2Body::CreateFixture(b2FixtureDef const*)'
HelloWorld.cpp:(.text+0x1e9): undefined reference to `b2World::Step(float, int, int)'
HelloWorld.cpp:(.text+0x286): undefined reference to `b2World::~b2World()'
HelloWorld.cpp:(.text+0x2c9): undefined reference to `b2World::~b2World()'
/tmp/ccM3DeH3.o: In function `b2PolygonShape::b2PolygonShape()':
HelloWorld.cpp:(.text._ZN14b2PolygonShapeC2Ev[_ZN14b2PolygonShapeC5Ev]+0x22): undefined reference to `vtable for b2PolygonShape'
/tmp/ccM3DeH3.o: In function `b2PolygonShape::~b2PolygonShape()':
HelloWorld.cpp:(.text._ZN14b2PolygonShapeD2Ev[_ZN14b2PolygonShapeD5Ev]+0x13): undefined reference to `vtable for b2PolygonShape'
collect2: error: ld returned 1 exit status
Очевидно, что код прошел, а ошибка появилась при линковании. Т.е. библиотеку он не видит. Значит, что-то не так объясняю компилятору. Не могу понять что именно.