如何根据链接描述文件中定义的链接变量的条件值使构建失败?

时间:2014-04-16 11:18:54

标签: linker linker-errors linker-scripts

如何根据链接描述文件中定义的链接变量的条件值使构建失败?

我正在使用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 = . ;
}

1 个答案:

答案 0 :(得分: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