1

我有一个较旧的 Visual Studio 2010 项目。最近我对它重新产生了兴趣,因此我将其转换为 VS 2015 项目。一切顺利,没有报告任何问题,编译成功。

现在,问题在于创建的 .obj 之一必须是第一个被链接的东西(输出必须是多引导兼容的,因此我必须确保多引导标头是应该的) .

对于旧版本的 VS,这是以一种有点 hackish 的方式完成的:必须是第一个的文件的名称以 '__' 开头(那时我就像个孩子,并不总是想着如何做正确的事情只要他们工作)。自然,这不再起作用了。

那么,如何告诉链接器某个链接顺序是预期的呢?或者,在问题的上下文中,如何使用 VS 2015 构建兼容多引导的二进制文件?

编辑:我已经选择了一个正确的答案,但我想指出,如果有人遇到同样的问题,还有另一种方法。您可以为多重引导标头指定一个部分名称(我们称之为 .boot),然后将其与文本部分合并(请参阅https://msdn.microsoft.com/en-us/library/wxz26dz2.aspx)。要了解如何为多引导标头指定节名称,请阅读汇编程序的文档(或用于生成带有标头的 .obj 的文档)。

4

1 回答 1

0

仍然有点老套,但我会考虑使用#pragma init_seg(lib)

于 2015-11-03T13:14:32.817 回答