компиляция класса C++ в XCode: ошибка во время компиляции: вектор stl

В более новой версии gazebo есть некоторые библиотеки, которые были перенесены в библиотеку зажигания, поэтому вы должны следовать им в руководстве по зажиганию 5.0.0.

А также по этому пути функция-член GetWorldPose была переименована в WorldPose.

10
задан Nietzche-jou 11 February 2009 в 00:49
поделиться

6 ответов

Вы включаете заголовок C++ в.m файл?

Файлы.m рассматривают как.c файлы с расширениями Objective C.

Файлы .mm рассматривают как .cpp файлы с расширениями Objective C, затем это назвало Objective C ++

Просто переименуйте любой.m файл к .mm, щелкните правой кнопкой или щелкните при нажатой клавише Ctrl и выберите, переименовывают на файле в XCode.

22
ответ дан 3 December 2019 в 13:44
поделиться

Удостоверьтесь, что Вы компилируете его как C++. Щелкните правой кнопкой по файлу в XCode, и выбор Получают Информацию и удостоверяются, что Тип файла установлен на sourcecode.cpp.cpp для файлов реализации.

2
ответ дан 3 December 2019 в 13:44
поделиться

Определенно, что-то в defines.h влияет на определение класса.

0
ответ дан 3 December 2019 в 13:44
поделиться

Эта проблема имела две ошибки:

  • один из моего включает, имел опечатку, которая вызвала ошибку компиляции
  • вектор, не найденный ошибкой, был прикреплен.m файлами к .mm
0
ответ дан 3 December 2019 в 13:44
поделиться

Принятие Вы говорите о 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....

0
ответ дан 3 December 2019 в 13:44
поделиться

Не уверенный, если Вы забыли вставлять, но у Вас есть незавершенный #ifndef

Что внутри defines.h?

Править: Вы, кажется, нашли решение. Еще один комментарий:

#include <stdlib.h>

Для C++:

#include <cstdlib>

:D

0
ответ дан 3 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: