3

我用openwrt交叉编译了一个固件,一个文件名字很奇怪libbfd.h,我编译失败,我见过。在libbfd.h第 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

这里BFD_HOST_U_64_BIT定义为@BFD_HOST_64_BIT@,“@”是什么意思,我在一个测试文件中测试过,无法编译。有人可以帮助我吗?谢谢!

4

2 回答 2

2

@VARIABLES@在目标系统上配置期间被替换为值。

请参阅autoconf 手册的这一页

你做了典型的:

./configure
make

建造它?那些应该有恒定的值。

于 2013-08-19T23:45:25.087 回答
0

@字符不是 C 标准执行字符集的一部分,主要是因为它不是原始 ASCII 标准的一部分。

除非它是实现对 C 的扩展的一部分,否则@需要在 C 编译器看到它们之前删除 s。

于 2013-08-20T00:18:03.103 回答