Visual c++ visualc&x2B+;链接器:定义符号(变量)的顺序或为.data定义新节<;普通>;

Visual c++ visualc&x2B+;链接器:定义符号(变量)的顺序或为.data定义新节<;普通>;,visual-c++,linker,sequence,symbols,sections,Visual C++,Linker,Sequence,Symbols,Sections,我正在使用Visual Studio 2017。我有以下问题需要解决: 符号(变量)“Start\u Common”应该是.data部分的第一个变量,如 0003:000932d4 __umaskval 1057a2d4 libucrtd:umask.obj 0003:000932e0 __fmode 1057a2e0 libucrtd:txtmode.obj >>>

我正在使用Visual Studio 2017。我有以下问题需要解决:

符号(变量)“Start\u Common”应该是.data部分
的第一个变量,如

0003:000932d4       __umaskval                 1057a2d4     libucrtd:umask.obj
0003:000932e0       __fmode                    1057a2e0     libucrtd:txtmode.obj
>>> 0003:000932e4       _Start_Common              1057a2e4     <common>  
0003:000932e8       _VARCODE_STATE             1057a2e8     <common>
0003:00093300       _VAR_COPY_EEPROM_DB_PARAM  1057a300     <common>

(以“>>>”开头的行由my手动插入)


非常感谢您的帮助

您可能正在寻找:嗨,伊戈尔,非常感谢您的回复。但这就是我所知道的一切。问题是,大约有数千个文件是不允许我编辑的(不允许使用declspec(allocate(…))。此文件的所有变量(大约20000个)都合并到.data部分的
公共部分。我看到的唯一机会是为
公共部分指定一个自己的部分名称,或者尝试理解如何操作
公共部分中的顺序。你知道吗?不,我不知道还有什么其他的方法来操纵这个部分的顺序。你为什么要这么做?你到底想达到什么目的?为什么节中的顺序很重要?这听起来像是一个。嗨,伊戈尔,所以我解决了这个问题。这是一个有点棘手和黑客。但据我所知,节(或其一部分)元素的排序顺序取决于路径和对象名的排序顺序,以及vcxproj文件中ClCompile元素的排序顺序,以及符号的第一个引用(不是出现)的反向排序顺序。花了很长时间才找到答案-(
 0003:00000000 0002c910H .data                   DATA
 0003:0002c910 00001fd4H .data$r                 DATA
 0003:0002e900 0007ba1cH .bss                    DATA
>>> 0003:0002e900 0007ba1cH .common                    DATA (same section 0003 like .data)
 0003:00000000 0002c910H .data                   DATA
 0003:0002c910 00001fd4H .data$r                 DATA
 0003:0002e900 0007ba1cH .bss                    DATA
>>> 0004:00000000 0007b000 .common                    DATA (new section 0004)