2016-12-09 37 views
0

Я испытываю проблемы с инструментом opendds_idl на ОС Windows 10.Фатальная ошибка C1083 при использовании opendds_idl инструмента на IDL файл

Я сгенерировали OpenDDS библиотеки и инструменты с Visual Studio 2015 с OpenDDS исходного кода с режимом статической связующей и платформа x64.

С помощью командной строки

opendds_idl file.idl 

я получил ошибку

c1: fatal error C1083: Cannot open source file : '' : No such file or directory 
tao-idli_2HJC0I.cpp 
opendds_idl: preprocessor "CL.EXE" returned with an error 

Содержание IDL файла:

module BasicIOTest 
{ 
#pragma DCPS_DATA_TYPE "BasicIOTest::TestData" 
#pragma DCPS_DATA_KEY "BasicIOTest::TestData id" 

    struct TestData 
    { 
    long id; 
    string text; 
    }; 
}; 
+0

Вы запускаете opendds_idl из оболочки, где Visual Studio 2015 находится в пути? opendds_idl пытается вызвать cl в качестве предварительного процессора. Если это так, попробуйте добавить -v в командную строку, чтобы получить отладочный вывод –

+0

Спасибо за ваш ответ. Да, я запускаю opendds_idl из командной строки Visual Studio 2015. Мне удалось, наконец, скомпилировать IDL-файл. Я собираюсь опубликовать запрос на мой первоначальный вопрос. Способ, которым он был разрешен, - это использовать другую командную строку. – MSch8791

ответ

1

На самом деле, я использовал команду VS2015 x64 нативные инструменты и кажется, что что-то пошло не так, когда opendds_idl форматировал командную строку CL.exe.

Вот детали (с опцией -v, рекомендованные Джонни Willemsen)

> opendds_idl -v TestData.idl 
opendds_idl: preprocessing TestData.idl 
opendds_idl: spawning: CL.EXE -D__TAO_IDL=0x060200 -I. -I. -nologo -E -I. -D__OPENDDS_IDL=0x030900 -D__OPENDDS_IDL_HAS_FIXED "-I"D:\path\to\thirdparty\OpenDDS "" C:\path\to\AppData\Local\Temp\tao-idli_ynmjvL.cpp 

c1: fatal error C1083: Cannot open source file : '' : No such file or directory 
tao-idli_ynmjvL.cpp 
opendds_idl: preprocessor "CL.EXE" returned with an error 

При использовании, другая команда VS2015 строки (командная строка для разработчиков VS2015) мне удалось собрать его без проблем.

Детали:

>opendds_idl -v TestData.idl 
opendds_idl: preprocessing TestData.idl 
opendds_idl: spawning: CL.EXE -D__TAO_IDL=0x060200 -I. -I. -nologo -E -I. -D__OPENDDS_IDL=0x030900 -D__OPENDDS_IDL_HAS_FIXED -ID:\path\to\thirdparty\OpenDDS C:\paths\to\AppData\Local\Temp\tao-idli_lDpVP9.cpp 
tao-idli_lDpVP9.cpp 
opendds_idl: parsing TestData.idl 
processing TestData.idl 
opendds_idl: BE processing on TestData.idl 
MODULE: CORBA 
MODULE: BasicIOTest 
STRUCT: TestData 

Будет ли это ошибка?

+0

Нет, это не ошибка, opendds_idl должен иметь возможность запускать cl, вызывая его из командной строки vs2015, это правильный путь. –

+0

Я имею в виду в командной строке x64 native tools из VS2015, строка параметров CL.EXE, похоже, не была хорошо отформатирована. Но с другой командной строкой она была отформатирована хорошо. Обратитесь к выводам, которые я опубликовал в своем ответе. – MSch8791

+0

Да, теперь я вижу это, очень странно, не знаю, откуда это. Может быть, открыть проблему на https://github.com/objectcomputing/OpenDDS? –