Настройка OpenDDS

Я пытаюсь настроить среду для OpenDDS, но мне не удалось запустить скрипт настройки. Буду очень признателен, если есть какие-то идеи от вас, ребята. = Д

В общем, после того, как я загрузил OpenDDS-3.12.zip из здесь. Я извлек в папку и попытался запустить файл конфигурации с помощью этой команды в командной строке VS (VS2017)

configure --compiler=gcc

Затем загружается «ACE+TAO-2.2a_with_latest_patches_NO_makefiles», и я извлекаю zip-файл в корневую папку.

Затем он показывает это сообщение.

ACE_ROOT/ace/config.h exists, skipping configuration of ACE+TAO 
Use of uninitialized value $mpctype in string eq at configure line 1103.                                                
Use of uninitialized value $mpctype in concatenation (.) or string at configure line 1257.                              
Use of uninitialized value $mpctype in string eq at configure line 1266.                                                
Running MPC to generate project files.                                                                                  
MPC_ROOT was set to C:\src\OpenDDS-DDS-3.12.2\ACE_wrappers\MPC.                                                         
Using .../OpenDDS-DDS- 
3.12.2/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg                                         
ERROR: Invalid type: C:\src\OpenDDS-DDS-3.12.2\DDS_TAOv2_all.mwc                                                        
mwc.pl v4.1.28                                                                                                          

...
/*lots of explanation of each file here*
*then followed by*/
...

ERROR: Error from MPC, stopped at configure line 1270.   

У меня также установлены Visual Studio 2017 и Perl 5.22, я не уверен, является ли это проблемой компилятора или какой-либо другой проблемой. Ниже приведен сценарий настройки, который напечатал указанную выше ошибку.

@@ line 1268 -- 1270 @@
  if (!$opts{'dry-run'}) {
if (system("perl \"$ENV{'ACE_ROOT'}/bin/mwc.pl\" $mwcargs") != 0) {
  die "ERROR: Error from MPC, stopped";
}
}

person Leon Teng    schedule 17.05.2018    source источник
comment
Выясните, где определяется $mpctype, возможно, вам не хватает переменной среды или командного переключателя.   -  person xxfelixxx    schedule 18.05.2018
comment
Кроме того, обычно первое предупреждение/ошибка является наиболее полезным для просмотра кода, а не последним, поэтому здесь я бы начал искать до строки 1103 вместо строки 1266.   -  person xxfelixxx    schedule 18.05.2018
comment
Не используйте --compiler=gcc, вы используете не gcc, а Visual Studio   -  person Johnny Willemsen    schedule 18.05.2018
comment
Может быть, мне следует начать с основания проблемы. Когда я попытался использовать только --compiler , вместо этого он показал мне это: ERROR: Can't find a compiler, set PATH or run this script with the --compiler option. For Microsoft Visual C++, run this script from the Visual Studio Command Prompt. Stopped at configure line 378. Я проверил свой PATH в своей системе, в нем есть perl или я что-то пропустил?   -  person Leon Teng    schedule 20.05.2018
comment
@JohnnyWillemsen, так какую команду мне использовать? Кажется, не может найти компилятор.   -  person Leon Teng    schedule 21.05.2018
comment
Вы должны ввести команду из командной строки Visual Studio, вы это делаете?   -  person Johnny Willemsen    schedule 21.05.2018


Ответы (3)


$mpctype определяется здесь:

my $mpctype = ($slash eq '/' ||
              ($cross_compile && $buildEnv->{'build'} eq 'target'))
            ? 'gnuace' : $opts{'compiler_version'};

Кажется, он смотрит на $opts{'compiler_version'}, который, по-видимому, пуст. %opts определяется здесь:

my %opts = %{parseArgs()};

поэтому похоже, что вы должны определить compiler_version в командной строке или определить целевую платформу. Вероятно, будет лучше, если вы внимательно проверите параметры УСТАНОВКИ

person jjmerelo    schedule 19.05.2018
comment
Я проверил параметры УСТАНОВКИ, но до сих пор не нашел решения. Среда TAO и ACE правильная. как вы определяете compiler_version? - person Leon Teng; 21.05.2018
comment
@LeonTeng Вы можете попробовать --compiler_version=dummy и посмотреть, что он делает, но, возможно, вы можете попробовать gcc и другие, которые вы могли установить в своей системе. - person jjmerelo; 21.05.2018
comment
Большое спасибо за понимание, проблема решена. Причиной проблемы является отсутствующий компилятор в Visual Studio. Судя по всему, Visual Studio не установила C++ по умолчанию, поэтому что делать, так это просто перезапустить установку, выбрать изменить и проверить C++, и тогда все работает нормально. - person Leon Teng; 22.05.2018

VS2017 не устанавливает компилятор С++ по умолчанию.

  • Измените VS 2017, выберите компилятор С++ и установите, если VS 2017 уже установлен.
  • настроить (без флага --compiler=gcc)
person Safdar Sikander    schedule 31.12.2018

У меня был аналогичный вопрос. Будучи новичком, я начал с java и окон на https://opendds.org/quickstart/GettingStartedWindows.html . Шаг 5 «Настроить (чтобы включить поддержку Java, используйте configure --java)» не работал в командном окне Visual Studio, несмотря на установку JAVA_HOME. Я отправил ACE_ROOT, DDS_ROOT, TAO_ROOT и MPC_ROOT, хотя в руководстве не указано, что это попытка отладить эту проблему. При использовании опции "--compiler" я получаю ошибки, подобные тем, что в этой теме. Было ли какое-либо решение, чтобы заставить работать «стандартное» руководство. Использование Windows 10.

D:\data\OpenDDS-3.13.3>configure --java --compiler="C:\Program Files\Java\jdk1.8.0_221\bin" ACE_ROOT/ace/config.h существует, конфигурация ACE+TAO пропущена Использование неинициализированного значения $mpctype в строке eq в строке конфигурации 1482. Использование неинициализированного значения $mpctype в конкатенации (.) или строки в строке конфигурации 1646. Использование неинициализированного значения $mpctype в строке eq в строке конфигурации 1655. Запуск MPC для генерации файлы проекта. MPC_ROOT был установлен в D:\data\OpenDDS-3.13.3\ACE_WRAPPERS\MPC. Используя .../OpenDDS-3.13.3/ACE_WRAPPERS/bin/MakeProjectCreator/config/MPC.cfg ОШИБКА: Недопустимый тип: D:\data\OpenDDS-3.13.3\DDS_TAOv2_all.mwc mwc.pl v4.1.44 ... ОШИБКА: ошибка MPC, остановлена ​​на строке конфигурации 1659.

person user8039286    schedule 25.12.2019
comment
Привет, пользователь8039286, добро пожаловать. Пожалуйста, подумайте о том, чтобы дать лучший формат, так как это очень трудно читать. - person Tiago Martins Peres 李大仁; 26.12.2019