首页 > 解决方案 > Visual C++ 链接器:定义符号(变量)的顺序或为 .data 定义新部分

问题描述

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

符号(变量)“Start_Common”应该是<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>

(以“>>>”开头的行是我手动插入的)

有没有办法做到这一点?

或者我可以为该部分分配一个新的部分名称<common>(例如.common),这将导致:

 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)

(以“>>>”开头的行是我手动插入的)

非常感谢你的帮助

标签: visual-c++linkersequencesymbolssections

解决方案


推荐阅读