В более новой версии gazebo есть некоторые библиотеки, которые были перенесены в библиотеку зажигания, поэтому вы должны следовать им в руководстве по зажиганию 5.0.0.
А также по этому пути функция-член GetWorldPose была переименована в WorldPose.
Вы включаете заголовок C++ в.m файл?
Файлы.m рассматривают как.c файлы с расширениями Objective C.
Файлы .mm рассматривают как .cpp файлы с расширениями Objective C, затем это назвало Objective C ++
Просто переименуйте любой.m файл к .mm, щелкните правой кнопкой или щелкните при нажатой клавише Ctrl и выберите, переименовывают на файле в XCode.
Удостоверьтесь, что Вы компилируете его как C++. Щелкните правой кнопкой по файлу в XCode, и выбор Получают Информацию и удостоверяются, что Тип файла установлен на sourcecode.cpp.cpp для файлов реализации.
Определенно, что-то в defines.h влияет на определение класса.
Эта проблема имела две ошибки:
Принятие Вы говорите о XCode OS X, который использует gcc, чтобы сделать фактическую компиляцию. Таким образом, не должно быть никакого различия между этим и Linux кроме, возможно, различных версий gcc.
Первая вещь, которая выскакивает во мне здесь, состоит в том, что Вы ввели "boid.h" как название файла, но Вы включаете "Boid.h". Принятие этого не является опечаткой, я ожидал бы что доставить неприятности и на Linux и на OS X....
Отредактированный для ответа на новый вопрос: Хм... вектор является определенно частью XCode: /Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.0.0/vector
на моей машине.
Дальнейшее размышление: при портировании источника и make-файлов от сборки Linux к Mac можно, вероятно, просто скомпилировать его из командной строки точно как Вы, делают на Linux....
Не уверенный, если Вы забыли вставлять, но у Вас есть незавершенный #ifndef
Что внутри defines.h?
Править: Вы, кажется, нашли решение. Еще один комментарий:
#include <stdlib.h>
Для C++:
#include <cstdlib>
:D