2014-04-16 24 views
0

如何基於鏈接器腳本中定義的鏈接器變量的條件值來使構建失敗?如何基於鏈接器腳本中定義的鏈接器變量的條件值來使構建失敗?

我正在使用GCC編譯C代碼。我定義了一個鏈接器變量BINARY_TEST。如果BINARY_TEST> 32KB的值,那麼我想失敗的構建。如何編寫條件測試並使用鏈接器腳本無法執行構建? 請建議任何腳本。

SECTIONS 
{ 
    . = 0x0000 ; 

    .text : 
    { 
    *(.text) 
    *(.rdata)        

    } 

    .data : 
    { 
    *(*.data) 
    *(*.bss)  
    } 

    BINARY_TEST = . ; 

    /*Want something like below */ 
    if (BINARY_TEST > 32KB) 
    Throw Error and stop 
    /* ******* */ 

    END = . ; 
} 

回答

0

如何寫條件測試,並使用鏈接器腳本構建失敗?

在我看來,你可以平凡地實現失敗作爲後鏈接步驟。例如。在您的Makefile

foo.exe: foo.o 
    $(CC) -o foo.exe ... 
    nm foo.exe | grep BINARY_TEST | \ 
    ... commands to verify that symbol value < 32K, or fail 
+0

Thanks @Employed Russian。 但我正在尋找鏈接器腳本方法。 –

+0

@RajivKumarSrivastav *爲什麼*你在尋找鏈接腳本方法? –