gpt4 book ai didi

c++ - IBM XL C/C++ 是否提供 init_priority?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:07:38 25 4
gpt4 key购买 nike

我们使用 C++ 静态初始化顺序来控制 C++ 库中多个对象的构造。 GCC 提供 init_priority ,Microsoft 提供 init_seg() .

我正在寻找与 IBM 的 XL C/C++ 编译器类似的搜索结果,但我的搜索结果没有显示有用的匹配项。编译器在 Linux 和 AIX 上运行。显然 Linux 提供了该功能,但我不确定 AIX 运行时支持。

我的第一个问题是,AIX 平台是否支持初始化优先级?

我的第二个问题是,IBM 的 XL C/C++ 是否提供了一种通过源代码控制它的方法?

最佳答案

IBM XL C/C++ for Linux V13.1.1 及更高版本确实提供了一种控制初始化优先级的方法,请参阅 Knowledge Center有关如何通过 init_priority 变量属性控制它的更多详细信息,类似于 GCC,它在对象级别分配静态初始化优先级。

IBM XL C/C++ for AIX 不支持 init_priority 但它确实提供了一种方法来控制同一链接单元内 .o 文件之间全局变量的初始化顺序 - qpriority#pragma priority。有关这些选项的详细信息,请参阅 Knowledge Center .此外,-qmkshrobj=priority ( Knowledge Center ) 控制程序启动时共享对象(和 a.out)的初始化顺序(XL AIX 使用此方法,而 XL Linux 使用依赖关系来确定共享对象初始化顺序)。翻译单元内的顺序必须采用声明顺序,否则您可能会引用尚未初始化的变量进行初始化。

关于c++ - IBM XL C/C++ 是否提供 init_priority?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com