Search code examples
cmacroscross-compilingopenwrt

What does "@" mean in a C/C++'s macro?


I cross-compiled a firmware with openwrt, and a file is strange named libbfd.h and I compiling failed, I have ever seen it. In libbfd.h line 83:

79 #define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@
80 #define BFD_HOST_64BIT_LONG_LONG @BFD_HOST_64BIT_LONG_LONG@
81 #if @BFD_HOST_64_BIT_DEFINED@
82 #define BFD_HOST_64_BIT @BFD_HOST_64_BIT@
83 #define BFD_HOST_U_64_BIT @BFD_HOST_U_64_BIT@
84 typedef BFD_HOST_64_BIT bfd_int64_t;
85 typedef BFD_HOST_U_64_BIT bfd_uint64_t;
86 #endif

here BFD_HOST_U_64_BIT is defined as @BFD_HOST_64_BIT@, what's mean with "@", I tested in a test file, can't compiling. Could anybody help me? Thx!


Solution

  • @VARIABLES@ are replaced with values during configuration on the target system.

    See this page of the autoconf manual.

    Did you do the typical:

    ./configure
    make
    

    To build it? Those should have constant values.