在IDL文件上使用opendds_idl工具时出现致命错误C1083

时间:2016-12-09 02:58:41

标签: c++ idl opendds

我遇到了Windows 10上的opendds_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;
  };
};

1 个答案:

答案 0 :(得分:1)

事实上,我使用的是VS2015 x64本机工具命令提示符,当opendds_idl格式化CL.exe命令行时,似乎出现了问题。

以下是详细信息(使用Johnny Willemsen建议的-v选项)

> 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的Developer命令提示符)我成功编译它没有问题。

详细说明:

>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

这会是一个错误吗?