编译、链接、装载
摘要:在了解一个可执行文件的生成过程中,如果你使用windows中的IDE来完成这一工作,那对于你来说好像是一件非常容易的事情,因为你只需要按下build选项就可一完成编译和链接,然后又一个可执行文件就产生了,然而在中间发生了一系列很复杂的事情你知道吗? 在这篇文章中不举出非常详细的例子来展示如何查看一个程序的各个部分,只是介绍一些可以他有利于你了解你自己写出的程序的一些强大的工具。在进入主题之前先介绍一下程序生成可执行文件的过程,相信绝大数人都有所了解。那就是预编译, 编译, 汇编, 链接。 先大致介绍一下每个部分完成了什么功能: 1、预编译:删除所有#define 并展开所有的宏定...
阅读全文
linux操作杂记
摘要:1.例如现在有一个可执行的程序 main ,当你想要获得该程序运行的时间的时候 可以用 time ./main 这样在终端上可以打印出程序运行所用的时间。 2.如果想要知道一个程序在运行的时候所链接的系统库可以使用, ldd ./main这样可以输出程序运行时所链接的库。 3.如果想知道一个函数库所导出的函数,可以用 nw xxx.so。nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库,nm命令可以列出函数库中定义的所有符号,包括每个符号的值和类型。还可以给出在原程序中这个函数(符号)是在多少行定义的,不过这必须要求编译该函数库的时候加“
阅读全文