交叉编译时向C编译器询问数据类型

问题描述 投票:0回答:1

我正在使用GNU Autotools作为构建系统的跨平台项目,我想知道是否有一种方法可以运行简单的sizeof(int)并将结果传递给configure脚本(甚至简单地)到标准输出)当交叉编译时>>。

让我们想象一下,我正在使用32位计算机为64位计算机编译程序。如果我的编译器能够为其他体系结构编译代码,则意味着必定知道sizeof(int) 在目标体系结构上]的结果。

我的问题是:如何在交叉编译时询问编译器以获取该信息?

我正在使用GNU Autotools构建系统的跨平台项目,我想知道是否有一种方法可以运行简单的sizeof(int)并将结果传递给configure脚本(或...

c gcc cross-compiling configure autotools
1个回答
0
投票

如果您确实使用了GCC(带有标签),请转储预定义的预处理器宏,然后查找您关心的类型。例如:

$ gcc -x c -E -dM /dev/null | grep SIZE
#define __SIZEOF_FLOAT80__ 16
#define __SIZE_MAX__ 0xffffffffffffffffUL
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 8
#define __SIZEOF_LONG__ 8
#define __SIZEOF_LONG_DOUBLE__ 16
#define __SIZEOF_SIZE_T__ 8
#define __SIZEOF_WINT_T__ 4
#define __SIZE_TYPE__ long unsigned int
#define __SIZEOF_PTRDIFF_T__ 8
#define __SIZE_WIDTH__ 64
#define __SIZEOF_FLOAT__ 4
#define __SIZEOF_FLOAT128__ 16
#define __SIZEOF_SHORT__ 2
#define __SIZEOF_INT128__ 16
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_LONG_LONG__ 8
© www.soinside.com 2019 - 2024. All rights reserved.