Как настроить OpenDDS 3.13 с сообществом VS2017?

Я использую Visual Studio 2017. Ниже приведены выходные данные командной строки Visual Studio Developer с указанием версии C++.

C:\ProgramsNotInstalled\OpenDDS-3.13>cl /?
Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27024.1 for x86

После этого я вижу следующий вывод при запуске команды configure --java.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

C:\ProgramsNotInstalled\OpenDDS-3.13>configure
ERROR: Could not detect Visual C++ version, try running this script from the Visual Studio Command Prompt.
Stopped at configure line 421.

C:\ProgramsNotInstalled\OpenDDS-3.13>configure --java
ERROR: Could not detect Visual C++ version, try running this script from the Visual Studio Command Prompt.
Stopped at configure line 421.

C:\ProgramsNotInstalled\OpenDDS-3.13>

Я видел аналогичный вопрос, заданный для DDS 3.12 о переполнении стека, но этот ответ связан с языком. В моем случае это явно не проблема, и я запускаю скрипт configure из командной строки правильного типа. Этот вопрос не является дубликатом. Как установить OpenDDS 3.12 в системе Windows


person shawn1874    schedule 03.12.2018    source источник
comment
Какой результат вы получаете от configure --verbose?   -  person melpomene    schedule 03.12.2018


Ответы (2)


Очевидно, скрипт configure не всегда может автоматически определить версию компилятора. Я не умею читать Perl-скрипты, потому что плохо знаю Perl, но нашел возможность помочь скрипту.

Сначала определите точную версию компилятора C++, запустив эту строку:

cl /?

Теперь, используя его вывод, добавьте параметр --compiler в командную строку.

configure --compiler=19.16.27024.1 --java

Инструкции в файле INSTALL и README не были ясны на этот счет. Я запустил configure --help, чтобы посмотреть параметры командной строки, и именно так я узнал, что скрипт попытается автоматически определить компилятор. Я предполагаю, что скрипт ищет конкретную версию компилятора C++ или использует неправильное регулярное выражение.

person shawn1874    schedule 03.12.2018
comment
Разве это не установит $opts{compiler}, а не $opts{compiler_version}? - person melpomene; 03.12.2018

Это небольшая проблема в сценарии настройки OpenDDS 3.13, вызванная изменением версии компилятора, о котором не было известно во время выпуска. Когда вы хотите вытащить мастер github (см. https://github.com/objectcomputing/OpenDDS), это должно работать снова или дождаться выхода OpenDDS 3.14.

person Johnny Willemsen    schedule 04.12.2018