Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何找到链接器(在Linux上)支持的最大对齐?_C_Gcc_Linker_Ld_Memory Alignment - Fatal编程技术网

C 如何找到链接器(在Linux上)支持的最大对齐?

C 如何找到链接器(在Linux上)支持的最大对齐?,c,gcc,linker,ld,memory-alignment,C,Gcc,Linker,Ld,Memory Alignment,我试图找出我可以使用\uuuuu属性(对齐(N))的最大支持值是多少 根据需要,这取决于所使用的链接器: 在许多系统上,链接器只能安排变量对齐到某个最大对齐。(对于某些链接器,支持的最大对齐可能非常小。) 有没有办法找出这个值?它取决于使用的链接器还是系统本身? 换句话说,看看三个可能的链接器:ld.bfd、lld和gold,它们是否具有相同的对齐限制以及如何找到它?为什么不试试呢?好奇的是,一旦找到了支持的最大值,您将如何使用该信息?仅使用一个较高的值即可得到以下结果:main.cpp:8:1

我试图找出我可以使用
\uuuuu属性(对齐(N))
的最大支持值是多少

根据需要,这取决于所使用的链接器:

在许多系统上,链接器只能安排变量对齐到某个最大对齐。(对于某些链接器,支持的最大对齐可能非常小。)

有没有办法找出这个值?它取决于使用的链接器还是系统本身?
换句话说,看看三个可能的链接器:
ld.bfd
lld
gold
,它们是否具有相同的对齐限制以及如何找到它?

为什么不试试呢?好奇的是,一旦找到了支持的最大值,您将如何使用该信息?仅使用一个较高的值即可得到以下结果:
main.cpp:8:1:错误:请求的对齐“1073741824”超过了一个系统的最大值268435456
。因此,该系统在另一个系统上最多有2^28个相同代码:
prog.c:8:1:错误:请求的对齐太大
,但此系统也有2^28个相同代码max@chux-我有一些软件,它依赖于某种价值以某种方式调整。它在一台机器上工作,在另一台机器上随机失效。我想1)确认默认链接器具有对齐限制2)检查替代链接器是否可以解决此问题。为每个链接器手动运行28个以上的测试以确定此值似乎非常不理想。特别是当GCC引用一个链接器文档时,这个值应该被记录下来(但我找不到它,所以问题就来了)。你为什么不试试呢?奇怪的是,一旦你找到了支持的最大值,您将如何使用该信息?仅使用一个较高的值即可得到以下结果:
main.cpp:8:1:错误:请求的对齐“1073741824”超过了一个系统的最大值268435456
。因此,该系统在另一个系统上最多有2^28个相同代码:
prog.c:8:1:错误:请求的对齐太大
,但此系统也有2^28个相同代码max@chux-我有一些软件,它依赖于某种价值以某种方式调整。它在一台机器上工作,在另一台机器上随机失效。我想1)确认默认链接器具有对齐限制2)检查替代链接器是否可以解决此问题。为每个链接器手动运行28个以上的测试以确定此值似乎非常不理想。特别是当GCC引用一个链接器文档时,这个值应该被记录在文档中(但我找不到它,所以问题就来了)。