visual-c++ - 如何在 Visual C++ 中将一些函数分组到 .exe 输出的新内存部分

标签 visual-c++ compiler-construction linker

我需要使用 Visual C++ 来构建定制的 Apache Web 服务器。这是我试图实现的目标:在 Apache 源代码中指定一些函数或数据,并将它们放在输出 .exe 文件的单独和 4k 页对齐的部分(不是 .text .data .bss)中。

我可以在网上找到的壁橱解决方案是使用/Gy 编译器选项将每个函数编译成不同的 COMDAT,然后使用/ORDER 链接器选项将 COMDAT 按预定顺序放置。但是,它只是在节内重新排序,而不是更改 .exe 输出中的节布局或创建新节。在 Linux 下,我可以使用编译器属性“section”和链接器脚本来实现我的目标。 Visual C++ 中是否有等效的解决方案?非常感谢:-)

最佳答案

#pragma code_seg 允许您指定将放置代码的段。除了能够指定名称之外,编译器还会保留一堆名称,以便您可以根据需要推送和弹出当前状态。

关于visual-c++ - 如何在 Visual C++ 中将一些函数分组到 .exe 输出的新内存部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4273142/

相关文章:

c++ - -1.#IND的含义

编译器和解释器之间的混淆?

assembly - x86 的交叉编译 arm 程序集

c++ - 使用VSCode中的MSVS编译器构建OpenCV应用程序

c++ - C/C++ : how to figure out link flags?

c++ - 检查 C++11 库功能

c++ - MSVC 2010 : Allow right-click menu in console during input

c++ - 如何在 Visual C++ 中使用 Windows 窗体创建特定控件?

c - 收到以下错误 "collect2: ld returned 1 exit status"

c++ - 继承 - 符号未定义 Objective-C++