2014-06-27 44 views
2

我們試圖在ASN1宏但是編譯器會引發以下錯誤:ASN1宏值「被引用,但未定義。」

line 6 (BIGINTMACRO): A0256W: 'BigIntValue' is referenced, but is not defined. 

這是我們的代碼:

BIGINTMACRO DEFINITIONS ::= 
BEGIN 
    BIGINT MACRO ::= 
    BEGIN 
    TYPE NOTATION ::= <type ::= INTEGER> 
    VALUE NOTATION ::= value (VALUE BigIntValue)  
    BigIntValue ::= Int1 Int2 
    Int1 ::= number 
    Int2 ::= number 
    END 
END 

回答

2

有你還在用ASN.1一個特別的原因MACRO符號在1994年(20年前)從ASN.1中刪除,並由信息對象類和參數化取代?使用現代ASN.1將會更好,而不是用ASN.1宏觀符號將您的頭撞到牆上。

我注意到,您正在使用的OSS Nokalva ASN.1編譯或http://asn1-playground.oss.com在線ASN.1編譯器。您應該要求OSS支持部門通過發送郵件到[email protected]來爲您提供幫助。儘管OSS ASN.1編譯器仍支持ASN.1宏表示法,但支持部門可以幫助您將宏表示法轉換爲現代ASN.1。

宏符號從ASN.1取出20年前,因爲它的不確定性,以及其無法完全捕捉到宏觀作者的意圖在一臺機器處理的方式。現代ASN.1信息對象類和參數化解決了舊的ASN.1 MACRO符號中固有的問題。

在這種特殊情況下,「VALUE」關鍵字有望成爲一個ASN.1類型,而不是額外的宏在生產後會發生什麼。

+2

您好保羅, 是的,有一個特別的原因,我現在還在用ASN.1 MACRO符號。我們有一位堅持使用宏指令的老師,但不要問我爲什麼...... –

+2

請問他爲什麼要教導20年前從ASN.1中刪除的東西,因爲它存在固有的問題。他應該專注於當前版本的ASN.1,除非他試圖給糟糕的想法提供歷史教訓。 –

+2

多數民衆贊成他的聲明:「自1994年以來,宏被替換爲更現代的語言概念,但在網絡管理標準,他們仍然在使用,所以必須被理解」... PS:我從德國翻譯,所以它可能不完美 –