我需要使用 Visual C++ 构建自定义的 Apache Web 服务器。这是我试图实现的目标:指定 Apache 源代码中的一些函数或数据,并将它们放在输出 .exe 文件的单独且 4k 页对齐的部分(不是 .text .data .bss)中。
我在网上可以找到的最实用的解决方案是使用 /Gy 编译器选项将每个函数编译为不同的 COMDAT,然后使用 /ORDER 链接器选项将 COMDAT 按预定顺序放置。但是,它只是在节内重新排序,而不是更改 .exe 输出中的节布局或创建新节。在Linux下,我可以使用编译器属性“section”和链接描述文件来实现我的目标。 Visual C++ 中有等效的解决方案吗?非常感谢:-)
#pragma code_seg
可让您指定要放置代码的段。除了能够指定名称之外,编译器还会保留一个名称堆栈,以便您可以根据需要推送和弹出当前状态。