請考量您的模型具有在套件中直接定義的變數的情況。這些變數會定義各種常數(如 PI 及 DEGREES_PER_RADIAN)。其中部分變數是就其他變數而言定義的,因此相依變數必須在要編譯之應用程式的其他變數之前進行宣告。但是,產品不容許您置換變數宣告的預設字母順序。
至少有兩種方法可以解決此問題:
- 使用類型定義您的常數。例如,假設名為 PI 的類型具有下列宣告:
const double %s = 3.14
在此語法中,%s 將會取代為名稱 PI。
DEGREES_PER_RADIAN 類型將具有下列宣告:
const double %s = 180.0 / PI
在此語法中,%s 將會取代為名稱 DEGREES_PER_RADIAN。
因為您可以在 Rational® Rhapsody® 中變更類型宣告的順序,以便首先產生 PI,所以編譯成功。
- 建立類型為 const double 且起始值為 3.14 之名為 PI 的變數。建立類型為 const double 且起始值為 180.0 / PI 之名為 DEGREES_PER_RADIAN 的第二個變數。因為 Rational Rhapsody 會在 PI 變數之前產生 DEGREES_PER_RADIAN 變數,所以此項不會進行編譯。
在 DEGREES_PER_RADIAN 變數上,請將 CPP_CG::Attribute::VariableInitializationFile 內容設為 Implementation,以起始設定實作檔案中的變數。如果類型宣告以 const 開始,則預設值 (Default) 會導致將起始設定放在規格檔案中;否則,會將其放在實作檔案中。
現在,您的應用程式將進行正確編譯。