2016-12-09 2 views
0

ich ein Problem mit dem opendds_idl Werkzeug erleben auf Windows 10.enFatal error C1083, wenn sie auf IDL opendds_idl Tool Datei

ich die OpenDDS Bibliotheken und Tools mit Visual Studio 2015 von OpenDDS Quellcode mit statischem Verbindungsmodus erzeugt habe aktiviert und x64-Plattform.

Mit der Kommandozeile

opendds_idl file.idl 

Ich habe einen Fehler

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 

Die IDL-Datei Inhalt:

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

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

Führen Sie opendds_idl aus einer Shell, in der sich Visual Studio 2015 im Pfad befindet? opendds_idl versucht, cl als Pre-Prozessor aufzurufen. Wenn das der Fall ist, versuchen Sie, -v zur Befehlszeile hinzuzufügen, um die Debugausgabe zu erhalten. –

+0

Danke für Ihre Antwort. Ja, ich führe opendds_idl von der Visual Studio 2015-Eingabeaufforderung aus. Es ist mir endlich gelungen, die IDL-Datei zu kompilieren. Ich werde eine Antwort auf meine erste Frage schreiben. Die Art und Weise, wie es gelöst wurde, war mit einer anderen Eingabeaufforderung. – MSch8791

Antwort

1

In der Tat, ich war das VS2015 x64 nativen Tools Befehl prompt, und es scheint, dass etwas schief gelaufen ist, als opendds_idl die CL.exe Kommandozeile formatiert hat.

Hier sind die Details (mit der Option -v wie von Johnny Willemsen empfohlen)

> 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 

Durch die Verwendung einer anderen VS2015 Eingabeaufforderung (Developer Eingabeaufforderung für VS2015) ich es ohne Probleme zu kompilieren gelungen.

Details:

>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 

es ein Fehler sein würde?

+0

Nein, es ist kein Fehler, opendds_idl muss in der Lage sein, cl zu spawnen, das Aufrufen von einer vs2015-Eingabeaufforderung ist der richtige Weg. –

+0

Ich meine in der Eingabeaufforderung x64 native Tools von VS2015, die Parameter-Zeichenfolge von CL.EXE schien nicht gut formatiert zu sein. Aber mit der anderen Eingabeaufforderung wurde es gut formatiert. Siehe die Ausgabedaten, die ich in meiner Antwort angegeben habe. – MSch8791

+0

Ja, ich sehe es jetzt, sehr seltsam, nicht sicher, woher das kommt. Vielleicht ein Problem bei https://github.com/objectcomputing/OpenDDS öffnen? –