色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【Linux編程】如何使用gcc編譯源代碼時(shí)輸出map文件?

嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 來(lái)源:嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 2022-08-15 14:08 ? 次閱讀

?

熟悉Linux環(huán)境編程的童鞋,對(duì)gcc一定不是很陌生,它可以高效地將C/C++代碼編譯成可執(zhí)行文件。在嵌入式開(kāi)發(fā)領(lǐng)域,gcc更是無(wú)比的強(qiáng)大,采用不同編譯平臺(tái)的gcc編譯器,對(duì)應(yīng)地就可以生成該平臺(tái)的bin文件。由于gcc功能強(qiáng)大,在編譯Linux內(nèi)核時(shí),gcc會(huì)是編譯器的首選。

熟悉編譯原理的童鞋對(duì)map文件一定很熟悉,但若是平時(shí)對(duì)底層編譯不是很清晰,或者主要開(kāi)發(fā)工作集中在應(yīng)用層的童鞋,可能對(duì)其了解就神乎其微了。這個(gè)時(shí)候,你就需要好好閱讀本文,了解下map文件了。本文要給大家分享生成map文件的方法,后續(xù)筆者會(huì)再寫(xiě)相關(guān)的文章介紹map文件的具體內(nèi)容。

假設(shè)我們有以下的測(cè)試源碼,功能很簡(jiǎn)單:

#include 

static int test_function(int arg)
{
    printf("This is a function called: %s\n", __func__);
    return arg;
}

int main(int argc, const char **argv)
{
    test_function(0);
    return 0;
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

通常我們要得到可執(zhí)行文件,我們會(huì)輸入編譯命令:

gcc -o gcc_create_map_file gcc_create_map_file.c
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

得到輸出結(jié)果,測(cè)試如下:

運(yùn)行結(jié)果完全符合我們的期望,編譯命令完成后,在當(dāng)前目錄下,生成了gcc_create_map_file這個(gè)可執(zhí)行文件。

但是,如果我們要編譯輸出可執(zhí)行文件的同時(shí),也得到可執(zhí)行文件對(duì)應(yīng)的map文件呢?我們可以這樣輸入編譯命令:

gcc -o gcc_create_map_file gcc_create_map_file.c -Wl,-Map=gcc.map

測(cè)試輸出,完全沒(méi)有問(wèn)題:

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

我們對(duì)比2個(gè)編譯命令可以發(fā)現(xiàn),其實(shí)就是在原編譯命令的后面加上了 "-Wl,-Map=gcc.map";其中-Wl,是告訴gcc編譯器,這個(gè)是ld的選項(xiàng)參數(shù);而-Map=xxx.map就是指定map文件輸出的文件名稱,這個(gè)名稱xxx可以隨意定義,map文件的路徑可以是相對(duì)路徑,也可以是絕對(duì)路徑。以下就是map文件的詳細(xì)內(nèi)容,后續(xù)會(huì)有文章對(duì)它進(jìn)行詳細(xì)分析,現(xiàn)在大家先有個(gè)感官認(rèn)識(shí)。

Archive member included to satisfy reference by file (symbol)

/usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
                              /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o (__libc_csu_init)

Discarded input sections

 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .note.GNU-stack
                0x0000000000000000        0x0 /tmp/cc6AliJG.o
 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
 .note.GNU-stack
                0x0000000000000000        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o

Memory Configuration

Name             Origin             Length             Attributes
*default*        0x0000000000000000 0xffffffffffffffff

Linker script and memory map

LOAD /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
LOAD /tmp/cc6AliJG.o
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libc.so
START GROUP
LOAD /lib/x86_64-linux-gnu/libc.so.6
LOAD /usr/lib/x86_64-linux-gnu/libc_nonshared.a
LOAD /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
END GROUP
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
LOAD /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
                [!provide]                        PROVIDE (__executable_start, 0x400000)
                0x0000000000400238                . = (0x400000 + SIZEOF_HEADERS)

.interp         0x0000000000400238       0x1c
 *(.interp)
 .interp        0x0000000000400238       0x1c /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.note.ABI-tag   0x0000000000400254       0x20
 .note.ABI-tag  0x0000000000400254       0x20 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.note.gnu.build-id
                0x0000000000400274       0x24
 *(.note.gnu.build-id)
 .note.gnu.build-id
                0x0000000000400274       0x24 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.hash
 *(.hash)

.gnu.hash       0x0000000000400298       0x1c
 *(.gnu.hash)
 .gnu.hash      0x0000000000400298       0x1c /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.dynsym         0x00000000004002b8       0x60
 *(.dynsym)
 .dynsym        0x00000000004002b8       0x60 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.dynstr         0x0000000000400318       0x3f
 *(.dynstr)
 .dynstr        0x0000000000400318       0x3f /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.gnu.version    0x0000000000400358        0x8
 *(.gnu.version)
 .gnu.version   0x0000000000400358        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.gnu.version_d  0x0000000000400360        0x0
 *(.gnu.version_d)
 .gnu.version_d
                0x0000000000400360        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.gnu.version_r  0x0000000000400360       0x20
 *(.gnu.version_r)
 .gnu.version_r
                0x0000000000400360       0x20 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.rela.dyn       0x0000000000400380       0x18
 *(.rela.init)
 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
 .rela.text     0x0000000000400380        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 *(.rela.fini)
 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
 *(.rela.ctors)
 *(.rela.dtors)
 *(.rela.got)
 .rela.got      0x0000000000400380       0x18 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
 .rela.bss      0x0000000000400398        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
 *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
 *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
 *(.rela.ifunc)

.rela.plt       0x0000000000400398       0x30
 *(.rela.plt)
 .rela.plt      0x0000000000400398       0x30 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                [!provide]                        PROVIDE (__rela_iplt_start, .)
 *(.rela.iplt)
 .rela.iplt     0x00000000004003c8        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                [!provide]                        PROVIDE (__rela_iplt_end, .)

.init           0x00000000004003c8       0x1a
 *(SORT(.init))
 .init          0x00000000004003c8       0x15 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
                0x00000000004003c8                _init
 .init          0x00000000004003dd        0x5 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o

.plt            0x00000000004003f0       0x30
 *(.plt)
 .plt           0x00000000004003f0       0x30 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000400400                printf@@GLIBC_2.2.5
                0x0000000000400410                __libc_start_main@@GLIBC_2.2.5
 *(.iplt)
 .iplt          0x0000000000400420        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.plt.got        0x0000000000400420        0x8
 *(.plt.got)
 .plt.got       0x0000000000400420        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.plt.bnd
 *(.plt.bnd)

.text           0x0000000000400430      0x1b2
 *(.text.unlikely .text.*_unlikely .text.unlikely.*)
 .text.unlikely
                0x0000000000400430        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .text.unlikely
                0x0000000000400430        0x0 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
 *(.text.exit .text.exit.*)
 *(.text.startup .text.startup.*)
 *(.text.hot .text.hot.*)
 *(.text .stub .text.* .gnu.linkonce.t.*)
 .text          0x0000000000400430       0x2a /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000400430                _start
 .text          0x000000000040045a        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
 *fill*         0x000000000040045a        0x6 
 .text          0x0000000000400460       0xc6 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .text          0x0000000000400526       0x44 /tmp/cc6AliJG.o
                0x000000000040054a                main
 *fill*         0x000000000040056a        0x6 
 .text          0x0000000000400570       0x72 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
                0x0000000000400570                __libc_csu_init
                0x00000000004005e0                __libc_csu_fini
 .text          0x00000000004005e2        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
 .text          0x00000000004005e2        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
 *(.gnu.warning)

.fini           0x00000000004005e4        0x9
 *(SORT(.fini))
 .fini          0x00000000004005e4        0x4 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
                0x00000000004005e4                _fini
 .fini          0x00000000004005e8        0x5 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
                [!provide]                        PROVIDE (__etext, .)
                [!provide]                        PROVIDE (_etext, .)
                [!provide]                        PROVIDE (etext, .)

.rodata         0x00000000004005f0       0x36
 *(.rodata .rodata.* .gnu.linkonce.r.*)
 .rodata.cst4   0x00000000004005f0        0x4 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x00000000004005f0                _IO_stdin_used
 *fill*         0x00000000004005f4        0x4 
 .rodata        0x00000000004005f8       0x2e /tmp/cc6AliJG.o

.rodata1
 *(.rodata1)

.eh_frame_hdr   0x0000000000400628       0x3c
 *(.eh_frame_hdr)
 .eh_frame_hdr  0x0000000000400628       0x3c /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000400628                __GNU_EH_FRAME_HDR
 *(.eh_frame_entry .eh_frame_entry.*)

.eh_frame       0x0000000000400668      0x114
 *(.eh_frame)
 .eh_frame      0x0000000000400668       0x30 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 .eh_frame      0x0000000000400698       0x40 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 .eh_frame      0x00000000004006d8       0x40 /tmp/cc6AliJG.o
                                         0x58 (size before relaxing)
 .eh_frame      0x0000000000400718       0x60 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
                                         0x78 (size before relaxing)
 .eh_frame      0x0000000000400778        0x4 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
 *(.eh_frame.*)

.gcc_except_table
 *(.gcc_except_table .gcc_except_table.*)

.gnu_extab
 *(.gnu_extab*)

.exception_ranges
 *(.exception_ranges .exception_ranges*)
                0x0000000000600e10                . = DATA_SEGMENT_ALIGN (0x200000, 0x1000)

.eh_frame
 *(.eh_frame)
 *(.eh_frame.*)

.gnu_extab
 *(.gnu_extab)

.gcc_except_table
 *(.gcc_except_table .gcc_except_table.*)

.exception_ranges
 *(.exception_ranges .exception_ranges*)

.tdata
 *(.tdata .tdata.* .gnu.linkonce.td.*)

.tbss
 *(.tbss .tbss.* .gnu.linkonce.tb.*)
 *(.tcommon)

.preinit_array  0x0000000000600e10        0x0
                [!provide]                        PROVIDE (__preinit_array_start, .)
 *(.preinit_array)
                [!provide]                        PROVIDE (__preinit_array_end, .)

.init_array     0x0000000000600e10        0x8
                0x0000000000600e10                PROVIDE (__init_array_start, .)
 *(SORT(.init_array.*) SORT(.ctors.*))
 *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors)
 .init_array    0x0000000000600e10        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
                0x0000000000600e18                PROVIDE (__init_array_end, .)

.fini_array     0x0000000000600e18        0x8
                [!provide]                        PROVIDE (__fini_array_start, .)
 *(SORT(.fini_array.*) SORT(.dtors.*))
 *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors)
 .fini_array    0x0000000000600e18        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
                [!provide]                        PROVIDE (__fini_array_end, .)

.ctors
 *crtbegin.o(.ctors)
 *crtbegin?.o(.ctors)
 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
 *(SORT(.ctors.*))
 *(.ctors)

.dtors
 *crtbegin.o(.dtors)
 *crtbegin?.o(.dtors)
 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
 *(SORT(.dtors.*))
 *(.dtors)

.jcr            0x0000000000600e20        0x8
 *(.jcr)
 .jcr           0x0000000000600e20        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .jcr           0x0000000000600e20        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o

.data.rel.ro
 *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
 *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)

.dynamic        0x0000000000600e28      0x1d0
 *(.dynamic)
 .dynamic       0x0000000000600e28      0x1d0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000600e28                _DYNAMIC

.got            0x0000000000600ff8        0x8
 *(.got)
 .got           0x0000000000600ff8        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 *(.igot)
                0x0000000000601fe8                . = DATA_SEGMENT_RELRO_END (., (SIZEOF (.got.plt) >= 0x18)?0x18:0x0)

.got.plt        0x0000000000601000       0x28
 *(.got.plt)
 .got.plt       0x0000000000601000       0x28 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000601000                _GLOBAL_OFFSET_TABLE_
 *(.igot.plt)
 .igot.plt      0x0000000000601028        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o

.data           0x0000000000601028       0x10
 *(.data .data.* .gnu.linkonce.d.*)
 .data          0x0000000000601028        0x4 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
                0x0000000000601028                data_start
                0x0000000000601028                __data_start
 .data          0x000000000060102c        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
 *fill*         0x000000000060102c        0x4 
 .data          0x0000000000601030        0x8 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
                0x0000000000601030                __dso_handle
 .data          0x0000000000601038        0x0 /tmp/cc6AliJG.o
 .data          0x0000000000601038        0x0 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
 .data          0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
 .data          0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o

.tm_clone_table
                0x0000000000601038        0x0
 .tm_clone_table
                0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .tm_clone_table
                0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o

.data1
 *(.data1)
                0x0000000000601038                _edata = .
                [!provide]                        PROVIDE (edata, .)
                0x0000000000601038                . = .
                0x0000000000601038                __bss_start = .

.bss            0x0000000000601038        0x8
 *(.dynbss)
 .dynbss        0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 *(.bss .bss.* .gnu.linkonce.b.*)
 .bss           0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o
 .bss           0x0000000000601038        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o
 .bss           0x0000000000601038        0x1 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
 .bss           0x0000000000601039        0x0 /tmp/cc6AliJG.o
 .bss           0x0000000000601039        0x0 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
 .bss           0x0000000000601039        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o
 .bss           0x0000000000601039        0x0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
 *(COMMON)
                0x0000000000601040                . = ALIGN ((. != 0x0)?0x8:0x1)
 *fill*         0x0000000000601039        0x7 

.lbss
 *(.dynlbss)
 *(.lbss .lbss.* .gnu.linkonce.lb.*)
 *(LARGE_COMMON)
                0x0000000000601040                . = ALIGN (0x8)
                0x0000000000601040                . = SEGMENT_START ("ldata-segment", .)

.lrodata
 *(.lrodata .lrodata.* .gnu.linkonce.lr.*)

.ldata          0x0000000000a01040        0x0
 *(.ldata .ldata.* .gnu.linkonce.l.*)
                0x0000000000a01040                . = ALIGN ((. != 0x0)?0x8:0x1)
                0x0000000000a01040                . = ALIGN (0x8)
                0x0000000000a01040                _end = .
                [!provide]                        PROVIDE (end, .)
                0x0000000000a01040                . = DATA_SEGMENT_END (.)

.stab
 *(.stab)

.stabstr
 *(.stabstr)

.stab.excl
 *(.stab.excl)

.stab.exclstr
 *(.stab.exclstr)

.stab.index
 *(.stab.index)

.stab.indexstr
 *(.stab.indexstr)

.comment        0x0000000000000000       0x35
 *(.comment)
 .comment       0x0000000000000000       0x35 /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o
                                         0x36 (size before relaxing)
 .comment       0x0000000000000035       0x36 /tmp/cc6AliJG.o
 .comment       0x0000000000000035       0x36 /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o

.debug
 *(.debug)

.line
 *(.line)

.debug_srcinfo
 *(.debug_srcinfo)

.debug_sfnames
 *(.debug_sfnames)

.debug_aranges
 *(.debug_aranges)

.debug_pubnames
 *(.debug_pubnames)

.debug_info
 *(.debug_info .gnu.linkonce.wi.*)

.debug_abbrev
 *(.debug_abbrev)

.debug_line
 *(.debug_line .debug_line.* .debug_line_end)

.debug_frame
 *(.debug_frame)

.debug_str
 *(.debug_str)

.debug_loc
 *(.debug_loc)

.debug_macinfo
 *(.debug_macinfo)

.debug_weaknames
 *(.debug_weaknames)

.debug_funcnames
 *(.debug_funcnames)

.debug_typenames
 *(.debug_typenames)

.debug_varnames
 *(.debug_varnames)

.debug_pubtypes
 *(.debug_pubtypes)

.debug_ranges
 *(.debug_ranges)

.debug_macro
 *(.debug_macro)

.gnu.attributes
 *(.gnu.attributes)

/DISCARD/
 *(.note.GNU-stack)
 *(.gnu_debuglink)
 *(.gnu.lto_*)
OUTPUT(gcc_create_map_file elf64-x86-64)

好了,本文對(duì)使用gcc生成map文件的方法就介紹到這里了,如有疑問(wèn)的話,可以與博主聯(lián)系哦。

?審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40278
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209328
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LinuxGCC編譯

    一、Linux 下多文件編譯 在上一篇 Linux 下的 C 編程我們知道了 Linux 下的
    的頭像 發(fā)表于 09-11 15:18 ?2621次閱讀
    <b class='flag-5'>Linux</b> 下<b class='flag-5'>GCC</b>的<b class='flag-5'>編譯</b>

    gcc&arm-linux-gcc編譯過(guò)程詳解

    到一個(gè).i文件中并等待進(jìn)一步處理。 ?(2)編譯 編譯就是把C/C++代碼(比如上述的.i文件)翻譯成匯編
    發(fā)表于 04-03 17:16

    gcc 編譯器的編譯過(guò)程詳解

    輸出信息,或者對(duì)最后生成的二進(jìn)制文件進(jìn)行控制,以便通過(guò)加入不同數(shù)量和種類的調(diào)試代碼來(lái)為今后的調(diào)試做好準(zhǔn)備。與其他常用的編譯器一樣,gcc
    發(fā)表于 07-03 09:51

    gcc編譯編譯過(guò)程介紹

    輸出信息,或者對(duì)最后生成的二進(jìn)制文件進(jìn)行控制,以便通過(guò)加入不同數(shù)量和種類的調(diào)試代碼來(lái)為今后的調(diào)試做好準(zhǔn)備。與其他常用的編譯器一樣,gcc
    發(fā)表于 07-09 07:49

    編譯代碼源代碼的比較算法

    編譯代碼源代碼
    發(fā)表于 02-09 15:19 ?10次下載

    FoxPro編程愛(ài)好者的反編譯工具源代碼

    FoxPro編程愛(ài)好者的反編譯工具源代碼 UNFOXALL 2.1獻(xiàn)給廣大FoxPro編程愛(ài)好者的反編譯工具   &
    發(fā)表于 02-26 16:13 ?94次下載

    Android源代碼編譯

    Android源代碼編譯
    發(fā)表于 10-24 09:30 ?5次下載
    Android<b class='flag-5'>源代碼</b><b class='flag-5'>編譯</b>

    Linux上安裝GCC3.4.0編譯器過(guò)程

    CC指定系統(tǒng)上的編譯器。如果系統(tǒng)上沒(méi)有編譯器,不能安裝源代碼形式的GCC 3.4.0。如果是這種情況,可以在網(wǎng)上找一個(gè)與你系統(tǒng)相適
    發(fā)表于 11-02 11:18 ?0次下載

    GCC編譯器你需要知道的入門(mén)知識(shí)

    編譯一個(gè)包含許多源文件的工程時(shí),若只用一條GCC命令來(lái)完成編譯是非常浪費(fèi)時(shí)間的。假設(shè)項(xiàng)目中有100個(gè)源文件需要
    的頭像 發(fā)表于 03-13 15:12 ?8786次閱讀

    Linux下開(kāi)發(fā)STM32 使用gcc-arm-none-eabi工具鏈編譯生成bin、hex文件

    Linux下開(kāi)發(fā)STM32:使用gcc-arm-none-eabi工具鏈編譯生成bin、hex文件
    的頭像 發(fā)表于 02-28 15:08 ?1.1w次閱讀
    <b class='flag-5'>Linux</b>下開(kāi)發(fā)STM32 使用<b class='flag-5'>gcc</b>-arm-none-eabi工具鏈<b class='flag-5'>編譯</b>生成bin、hex<b class='flag-5'>文件</b>

    GCC編譯C語(yǔ)言程序的過(guò)程是怎么樣的

    使用GCC將C語(yǔ)言源代碼文件生成可執(zhí)行文件的過(guò)程,需要經(jīng)歷四個(gè)的步驟:預(yù)處理(Preprocessing)編譯(Compilation)匯編
    的頭像 發(fā)表于 02-18 11:47 ?4091次閱讀

    gcc的使用方法以及Linux gcc 的常用選項(xiàng)

    gcc的使用方法 gcc 【選項(xiàng)】文件gcc常用選項(xiàng) gcc -v: 查看gcc
    的頭像 發(fā)表于 10-22 14:42 ?3100次閱讀

    Linux編程】如何使用gcc生成預(yù)編譯文件

    Linux編程】如何使用gcc生成預(yù)編譯文件
    的頭像 發(fā)表于 08-31 13:07 ?1946次閱讀
    【<b class='flag-5'>Linux</b><b class='flag-5'>編程</b>】如何使用<b class='flag-5'>gcc</b>生成預(yù)<b class='flag-5'>編譯文件</b>?

    Linux使用gcc編譯程序的語(yǔ)法

    01. 調(diào)試相關(guān)的宏 在Linux使用gcc編譯程序的時(shí)候,對(duì)于調(diào)試的語(yǔ)句還具有一些特殊的語(yǔ)法。 gcc編譯的過(guò)程中,會(huì)生成一些宏,可以使用
    的頭像 發(fā)表于 06-22 10:51 ?703次閱讀

    linux驅(qū)動(dòng)程序的編譯方法有哪兩種

    Collection)或其他C/C++編譯器來(lái)編譯源代碼文件。這種方法較為原始,需要開(kāi)發(fā)者手動(dòng)指定編譯器選項(xiàng)、包含路徑、庫(kù)
    的頭像 發(fā)表于 08-30 14:39 ?643次閱讀
    主站蜘蛛池模板: 18禁黄久久久AAA片| 狠狠色综合久久丁香婷婷| 久久视频这里只精品99热在线观看| 日本xxxx96| 在线亚洲色拍偷拍在线视频| 国产精品永久免费| 日本aa大片| 99re2.久久热最新地址| 精品国产品国语在线不卡| 色欲AV亚洲永久无码精品| 999人在线精品播放视频| 久久久久久久网站| 亚洲精品理论电影在线观看| 父亲在线日本综艺免费观看全集| 免费欧美大片| 在线观看免费av网站| 黄色三级视频在线| 无人区日本电影在线观看高清 | 高清国产激情视频在线观看| 毛片TV网站无套内射TV网站| 亚洲熟女丰满多毛XXXXX| 国产露脸无码A区久久| 色mimi| ass女人下部欣赏| 美女禁处受辱漫画| 尤物99久久久合集一区区| 好吊日视频在线| 亚洲av欧美在我| 国产欧美国产综合第一区| 少妇第一次交换| 短篇合集纯肉高H深陷骚| 人妻仑乱少妇88MAV| GAY空少被体育生开菊| 毛片在线看片| 中文字幕无码乱人伦蜜桃| 久久秋霞理论电影| 一本道色综合手机久久| 精品一区二区三区免费观看| 亚洲视频免费看| 九热这里只有精品| 伊人青青操|