0

如何禁用对程序中的函数重新排序的编译器/链接器优化?比方说,我有三个功能,比如

    void A (){};
    void B (){};
    void C (){};

构建后,这些函数可以重新排序,以便 B 在内存中排在第一位,C - 第二, A - 第三。

在 GCC 中,您有一个选项“no-toplevel-reorder”可以解决问题。

-fno-toplevel-重新排序

不要重新排序顶级函数、变量和 asm 语句。以它们在输入文件中出现的相同顺序输出它们。使用此选项时,不会删除未引用的静态变量。此选项旨在支持依赖特定排序的现有代码。对于新代码,最好使用属性。

有 MS C++ 的类似物吗?

4

1 回答 1

1

可以使用 #pragma code_seg("segname$tag");

于 2012-11-26T15:32:49.277 回答