什么是@&引用;在C/C中的平均值++';什么是宏?
我交叉编译了一个固件,一个奇怪的文件名为什么是@&引用;在C/C中的平均值++';什么是宏?,c,macros,cross-compiling,openwrt,C,Macros,Cross Compiling,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@
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\U HOST\U 64\U BIT
被定义为@BFD\U HOST\U 64\U BIT@
,我在测试文件中测试的“@”是什么意思,无法编译。有人能帮我吗?谢谢 在目标系统上进行配置时,@变量@
将替换为值
看
你是否做了典型的:
./configure
make
建造它?这些字符应该具有常量。字符不是C标准执行字符集的一部分,主要是因为它不是原始ASCII标准的一部分
除非它是C实现扩展的一部分,
@
s需要在C编译器看到它们之前被删除。我猜,它是一个将被构建脚本替换的变量?如果我冒险猜测,这是一个config
substitution文件,在为您的平台配置并构建OpenWRT toolkit的过程中,用实际值填充该文件。它可能不打算直接包括在内,而是用来生成一个您确实使用的版本(或者至少是OpenWRT使用的版本)。@sehe是的,可能有一个脚本,但我现在找不到它,因为我是自动编译的。我只是makemenuconfig
并在配置之后键入make
。不,我是自动构建的。我只是键入了make menuconfig
,然后在cofig之后键入make
。我不确定您的确切意思,但您需要弄清楚如何在构建中运行预处理步骤。这可能只是不这样做时会遇到的许多错误中的第一个。我使用OpenWrt的autobuild系统,按照这里的步骤,完整的命令是/script/feeds update-a
/script/feeds install-amake menuconfig
make