VC ++ Project, хотите скомпилировать в другой IDE, но чего-то не хватает - PullRequest
1 голос
/ 29 сентября 2011

Я довольно новичок в C ++.
Я хочу написать плагины для приложения под названием Cinema 4D .
Maxon, создатель C4D, предоставляет API для этого.Заголовочные файлы находятся в специальной папке.

"cinema4dskd" - это проект Visual Studio, содержащий примеры плагинов.В рамках этого проекта есть еще один подпроект, который называется _api .

enter image description here

Всплывающее окно - это диалоговое окно «Зависимости проекта».

Субпроект _api представляется ссылкой на файл, который присутствует на моем локальном диске, но его нет в cinema4dsdk.vcproj.
Все файлы в _api Проект находится в папке в папке установки Cinema 4D, также называемой _api .
Он полон заголовочных файлов и файлов .cpp.
Это в основном то, что мне нужно для компиляции плагинов для Cinema.4D, включая «c4d.h» в моем исходном коде.
Но именно здесь начинаются проблемы.

Я пытаюсь скомпилировать плагин в Code :: Blocks, я добавил все пути к"c4d.h" и т. д. Но каждый компилятор (gcc и даже msvc!) сообщает мне тысячи предупреждений о:

C: \ Programs \ MAXON \ Cinema 4D R12 \ resource \ _api \ge_prepass.h | 2668 | Предупреждение: многосимвольная символьная константа |

И, наконец,ошибка, что C4DGLuint не объявлено.Почему это работает в VC ++, но не с любым другим компилятором?Должно быть, я что-то пропустил, но я действительно не знаю что.

Я не думаю, что мне разрешено делиться этим проектом, поскольку _api принадлежит Maxon GmbH, но если вам это действительно нужно, я прошу вас загрузить демонстрационную версию Cinema 4Dгде включен проект cinema4dskd .

Скажите, если вам нужна дополнительная информация, надеюсь, у вас есть представление о том, что может отсутствовать.Почему, черт возьми, VC ++ может правильно скомпилировать плагины, но я не могу использовать командную строку или любую другую IDE?

Большое спасибо.
Niklas

Обновления:

Пример константы из нескольких символов ошибка:

C: \ Users \ niklas \ Documents \ CodeBlocks \ Cinema4D \ _api \ src \ gui.h | 690 | предупреждение: символьная константа из нескольких символов |
C: \ Users \ niklas \ Documents \ CodeBlocks \ Cinema4D \ _api \ src \ gui.h | 693 | предупреждение: символьная константа из нескольких символов |

690: BFM_SETVIEWPORTORIGIN  = 'cORG',
691:    BFM_SETVIEWPORTORIGIN_X=1,
692:    BFM_SETVIEWPORTORIGIN_Y=2,
693: BFM_SETVIEWPORTSIZE    = 'cSIZ',

1 Ответ

1 голос
/ 30 сентября 2011
'cORG'

- это так называемый многосимвольный литерал. Его значение не помещается в переменную char, вам понадобится int для его хранения, и согласно этому сообщению

C ++ буквенный символ из нескольких символов

это зависит от компилятора, как эта вещь интерпретируется. Похоже, что другой протестированный вами компилятор не поддерживает такие литералы.

...