Проблемы со сборкой в ​​C ++ - C ++ / CLI - C # проекте (Borland и VS-специфичные компоненты) - PullRequest
1 голос
/ 09 августа 2010

StackOverflow!

Сегодняшняя проблема немного странная, но, пожалуйста, потерпите меня.Буду очень признателен за любые советы / предложения!

Я унаследовал старую кодовую базу в проекте с некоторыми компонентами, относящимися к 2002 году. Для этого проекта нет документации вообще, и для исходного компьютера, на котором была собрана сборканастройка больше не существует (произошел сбой жесткого диска и нет доступной резервной копии ...).Система взаимодействует с роботизированной рукой и управляет ею.У меня есть полная установка и исполняемый файл установлен на тестовом компьютере с соответствующим оборудованием.Источник находится в репозитории Subversion, но сообщения регистрации минимальны и не дают практических советов.Он был разработан еще в январе, но разработчики ушли до того, как я начал.Он был частично переписан с новым графическим интерфейсом на основе C #.Проект состоит из C ++, C ++ / CLI и C #.Он использует Boost и VTK.Вкратце, моя проблема заключается в следующем: в управляющей части программного обеспечения имеется критическая для клиента ошибка, и я не могу собрать проект.Нет доступных символов отладки, и присоединение исполняемого файла не работает (вероятные причины почему ниже).Ни версии до C #, ни самая актуальная сборка исходного кода вообще ни при какой конфигурации я не пробовал.

Чтобы еще больше усложнить ситуацию, было предложено - хотя я не уверен в этом- что проект раньше создавался с помощью Borland C ++ Builder V6 и с тех пор был перенесен в Visual Studio.Он по-прежнему содержит специфичные для Borland компоненты, хотя большинство из них кажутся условными.

Мой менеджер клянется, что он будет не собираться под VS и должен быть полностью скомпилирован в Borland.Проблема в том, что я не могу заставить его встроиться без десятков ошибок.Определенно есть специфичные для Borland компоненты (файлы BPL), но я не знаю, что это такое и как они связаны со структурой проекта.

Мне интересно, нужно ли его создавать в Borland итогда VS или что-то в этом роде.Итак, мой вопрос: есть ли способ попытаться определить, как создать эту вещь, или это просто вопрос попробовать каждый вариант, пока я не выберу правильный?

РЕДАКТИРОВАТЬ: следует журнал ошибок.Пожалуйста, обратите внимание: я хорошо знаком с VS, но я никогда не использовал Borland пару дней назад.Предупреждение Noob!

  • Borland C ++ Builder 6 запрашивает несколько файлов .bpi, которые отсутствуют (соответствующие файлы .bpl доступны из установки на тестовом компьютере).

  • Выполнение пакетного файла перед сборкой кажется выполненным без ошибок.

  • Я скачал пробную версию C ++ Builder 2010,и импортировал проект в. Выполняя 'Build All' на том, что кажется правильным targer, я получаю следующие ошибки (после некоторых запросов на отсутствующие файлы ... Я попытался установить параметры компоновщика и компиляции, чтобы избежать этого,хотя, если честно, я не знаю, были ли это внешние зависимости или компоненты Borland, которые еще не были установлены)

    Проверка зависимостей проекта ... Сборка LoggingDebug.cbproj (настройка отладки)

    [Ошибка BCC32] is_array.hpp (40): E2430 Число параметров шаблона не совпадает при повторном объявлении «is_array»

    [Ошибка BCC32] is_array.hpp (40): E2428 Шаблоны должны быть классами или функциями

    [Ошибка BCC32] is_array.hpp (41): E2430 Число параметров шаблона не совпадает при повторном объявлении «is_array»

    [Ошибка BCC32] is_array.hpp (41): E2428 Шаблоны должны быть классами или функциями

    [Ошибка BCC32] is_array.hpp (42): E2430 Количество параметров шаблона не совпадает при повторном объявлении «is_array»

    [Ошибка BCC32] is_array.hpp (42): E2428 Шаблоны должны быть классами или функциями

    [Ошибка BCC32] is_array.hpp (43): E2430 Количество параметров шаблона не совпадает при повторном объявлении «is_array»

    [Ошибка BCC32] is_array.hpp (43): E2428 Шаблоны должны быть классами или функциями

    [Ошибка BCC32] ct_if.hpp (31): E2238 Множественное объявление для 'ct_and :: type'

    [Ошибка BCC32] ct_if.hpp (30): E2344 Предыдущее объявление 'ct_and :: type'

    [Ошибка BCC32] function_base.hpp (157): E2238 Множественное объявление для 'function_return_type :: type'

    [Ошибка BCC32] function_base.hpp (152): E2344 Более раннее объявление 'function_return_type :: type'

    [Ошибка BCC32] alignment_of.hpp (37): E2468 Значение типа void недопустимо

    [Ошибка BCC32] alignment_of.hpp (56): E2450 Неопределенная структура 'alignment_of_hack'

    [Ошибка BCC32] alignment_of.hpp (56): E2109 Недопустимый тип

    [Ошибка BCC32] alignment_of.hpp (37): E2468 Значение типа void недопустимо

    [Ошибка BCC32] alignment_of.hpp (56): E2450 Неопределенная структура 'alignment_of_hack'

    [Ошибка BCC32] alignment_of.hpp (56): E2109 Недопустимый тип

    [Ошибка BCC32] alignment_of.hpp (37): E2468 Значение типа void недопустимо

    [Ошибка BCC32] alignment_of.hpp (56): E2450 Неопределенная структура 'alignment_of_hack'

    [Ошибка BCC32] alignment_of.hpp (56): E2109 Недопустимый тип

    [Ошибка BCC32] alignment_of.hpp (37): E2468 Значение типа void недопустимо

    [Ошибка BCC32] alignment_of.hpp (56): E2450 Неопределенная структура 'alignment_of_hack'

    [Ошибка BCC32] alignment_of.hpp (56): E2109 Недопустимый тип

    [ошибка BCC32] if.hpp (131): E2270> ожидается

    [Ошибка BCC32] if.hpp (131): В объявлении E2321 не указан тег или идентификатор

    [Ошибка BCC32] type_with_alignment.hpp (271): E2238 Множественное объявление для 'type_with_alignment <2> :: type'

    [Ошибка BCC32] type_with_alignment.hpp (268): E2344 Более раннее объявление 'type_with_alignment <2> :: type'

    [Ошибка BCC32] not.hpp (40): E2015 Неоднозначность между 'aux' и 'mpl _ :: aux'

    [Ошибка BCC32] not.hpp (47): E2270> ожидается

    [Ошибка BCC32] not.hpp (47): в объявлении E2321 не указан тег или идентификатор

    [Ошибка BCC32] void.hpp (71): E2270> ожидается

    [Ошибка BCC32] void.hpp (71): E2321 Объявление не указывает тег или идентификатор

    [Ошибка BCC32] void.hpp (72): E2270> ожидается

    [Ошибка BCC32] void.hpp (72): В декларации E2321 не указан тег или идентификатор

    [Ошибка BCC32] или .hpp (50): E2015 Неоднозначность между 'aux' и 'mpl _ :: aux'

    [Ошибка BCC32] или .hpp (62): E2270> ожидается

    [Ошибка BCC32] или .hpp (62): в декларации E2321 не указан тег или идентификатор

    [Ошибка BCC32] eval_if.hpp (67): E2270> ожидается

    [Ошибка BCC32] eval_if.hpp (67): В декларации E2321 не указан тег или идентификатор

    [Ошибка BCC32] identity.hpp (40): E2270> ожидается

    [Ошибка BCC32] identity.hpp (40): В объявлении E2321 не указан тег или идентификатор

    [Ошибка BCC32] identity.hpp (41): E2270> ожидается

    [Ошибка BCC32] identity.hpp (41): В объявлении E2321 не указан тег или идентификатор

    [Ошибка BCC32] yes_no.hpp (35): E2238 Множественное объявление для 'yes_no_tag <1> :: type'

    [Ошибка BCC32] yes_no.hpp (30): E2344 Более раннее объявление 'yes_no_tag <1> :: type'

    [Ошибка BCC32] assert.hpp (79): E2270> ожидается

    [Ошибка BCC32] assert.hpp (79): в декларации E2321 не указан тег или идентификатор

    [Ошибка BCC32] arg.hpp (21): E2270> ожидается

    [Ошибка BCC32] arg.hpp (28): В декларации E2321 не указан тег или идентификатор

    [Ошибка BCC32] arg.hpp (28): E2228 Слишком много сообщений об ошибках или предупреждений

    Ошибка

    Истекшее время: 00: 00: 36,2

Точные ошибки варьируются в зависимости от того, какую версию источника я извлекаю из репозитория, но, учитывая, что эта вещь, очевидно, создает идеально «при правильных условиях», большое количество ошибок определенно подразумевает проблемы с внешними зависимостями, настройками проекта и т.д.

Ответы [ 2 ]

4 голосов
/ 09 августа 2010

, но разработчики ушли до того, как я запустил

, произошел сбой жесткого диска, и нет доступной резервной копии

Я не могу заставить его встроиться без десятков ошибок.

На этом написана катастрофа программного проекта.Вы, вероятно, были наняты в последней попытке спасти инвестиции, бросив мясо в проблему.Ты мясо.Шансы очень малы, вы сможете спасти его, даже если первоначальные разработчики его разочаровали.

Вам необходимо получить обязательство от команды менеджеров, чтобы иметь хоть какой-то шанс принестиэто к хорошему концу.Настаивайте на следующем:

  • Они должны нанять хотя бы одного из главных главных инженеров за смехотворно высокую консультационную плату, откалиброванной так, чтобы Нет!это не вариант.
  • Они должны нанять компанию по восстановлению данных, чтобы получить информацию с неисправного диска
  • Они должны приобрести все оригинальные инструменты, использованные для создания продукта.Если они больше не доступны от продавца, то посмотрите на сайт аукциона, например, ebay. не тратьте свое время на пробные версии.

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

1 голос
/ 10 февраля 2011

Я получил похожую ошибку, когда переместил свой проект из Borland 2006 в Borland XE.Решением этой проблемы является то, что мой код включал файлы из boost_1_34.Я удалил этот путь из проекта и использовал библиотеку наддува, предоставленную вместе с новой IDE.Программа успешно скомпилирована

...