Проблемы с компиляцией программы Ogre - Неопределенные ссылки на методы Ogre [дубликаты]

Я пытаюсь создать программу Ogre, для которой я пишу Makefile. Однако при попытке создать программу я получаю следующую ошибку:

...
GraphicsSystem.cpp:(.text+0x3a9b): undefined reference to `Ogre::Quaternion::IDENTITY'
GraphicsSystem.cpp:(.text+0x3aa2): undefined reference to `Ogre::Vector3::ZERO'
GraphicsSystem.cpp:(.text+0x3ad5): undefined reference to `Ogre::Node::setPosition(float, float, float)'
GraphicsSystem.cpp:(.text+0x3b60): undefined reference to `Ogre::MovableObject::detachFromParent()'
GraphicsSystem.cpp:(.text+0x3b7a): undefined reference to `Ogre::SceneNode::attachObject(Ogre::MovableObject*)'
GraphicsSystem.cpp:(.text+0x3bac): undefined reference to `Ogre::Camera::setPosition(Ogre::Vector3 const&)'
GraphicsSystem.cpp:(.text+0x3c22): undefined reference to `Ogre::Camera::setAutoAspectRatio(bool)'
...
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 1

Мой Makefile выглядит следующим образом:

CXX = g++-5
CXXFLAGS = -std=c++11 -Wno-unknown-pragmas
INCLUDES = -lsfml-graphics -lsfml-audio -lsfml-window -lsfml-system -L/home/me/ogre_install/lib/OGRE/ -I/home/me/ogre_install/include/OGRE/ -L/home/me/ogre_install/lib/ -I/home/me/ogre_install/include/ -lOgreMain -lOgreOverlay -lOgreHlmsPbs -lOgreHlmsUnlit

all:
    $(CXX) $(CXXFLAGS) $(INCLUDES) -o bin/a.out src/*

Несмотря на то, что я указал все библиотеки, я все равно получаю сообщения с упоминанием неопределенных ссылок. У кого-нибудь есть идеи?


person luanoob    schedule 03.11.2016    source источник
comment
Ваш $(INCLUDES) должен быть последним.   -  person PSkocik    schedule 04.11.2016
comment
Список подключаемых библиотек обычно называется LDFLAGS, и порядок здесь имеет значение. Библиотека подключается только в том случае, если она удовлетворяет неразрешенной ссылке. Вот почему библиотеки должны идти после объектных файлов, которые имеют эти неопределенные ссылки.   -  person PSkocik    schedule 04.11.2016