截至目前(2013年7月12日)为止,Qt 的最高版本为Qt5.1,在该版本中已经将Qt Creator与Qt Lib集成在一个文件夹中,因此安装的时候较为方便,只需安装一个即可。因为Qt具有超强的可移植性,在同一系统平台下编写的Qt程序几乎不用更改(主要是在调试的时候更改编译链接的库即可)即可轻松...
分类:
其他好文 时间:
2015-04-29 16:47:54
阅读次数:
163
先说编译、链接过程1.预编译展开宏2.为每一个.cxx源文件编译一个目标文件3.编译器合成这些目标文件成一个库文件,同时解析可以找到的符号引用4.连接器把目标的库文件和所需要的引用的静、动态链接库进行链接,即需要把其他静态库合成到可执行文件中,转换相应的符号引用为地址,然后确保所引用的其他动态链接库...
分类:
编程语言 时间:
2015-04-28 20:13:35
阅读次数:
160
以 - 开头的方法只能通过对象来调用,称为对象方法使用类来调用 不需要创建对象类方法只能使用类来调用,可以编译链接通过,但是无法执行。允许类方法和对象方法同名。内存中的类对象只有方法:工具类中基本上都实用类方法。
分类:
其他好文 时间:
2015-04-27 23:07:36
阅读次数:
94
【静态链接和动态链接】 静态链接:源程序编译之后,如果想要执行,先对目标文件进行链接,链接完成后如果执行了,就把链接好的都装载进内存 缺点: 如果一个目标文件被重复使用,每次都会把目标文件载入内存,造成浪费; 如果相对某个目标文件进行更新,需要先把这个目标文件重新编译+链接,然后重新载入内存。 .....
分类:
其他好文 时间:
2015-04-26 18:12:57
阅读次数:
162
对一个程序,通常的理解就是,源码编译成机器代码,然后通过机器解释运行。不过是怎样编译成机器代码,和怎样运行的,无疑是个值得探讨的问题。怎样编译成机器代码,过程就是源码的编译、链接,编译器做了这些事。而怎样运行,却不是哪个器件自己一己之力就可以做到的。机器代码要在机器上运行,就得要请求硬件资源。涉及最...
分类:
其他好文 时间:
2015-04-26 06:56:25
阅读次数:
156
以zc702开发板的u-boot为例
链接地址(运行地址):链接地址是在程序编译链接阶段就确定好的地址。
u-boot的链接脚本由CONFIG_SYS_LDSCRIPT宏定义来指定,如在zynq_common.h当中有如下代码:
#define CONFIG_SYS_LDSCRIPT "arch/arm/cpu/armv7/zynq/u-boot.lds"在该链接脚本中指定了u-b...
分类:
其他好文 时间:
2015-04-21 22:47:05
阅读次数:
778
理解编译链接的过程和ELF可执行文件格式编程使用exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态链接使用gdb跟踪分析一个execve系统调用内核处理函数sys_execve特别关注新的可执行程序是从哪里开始执行的?为什么execve系统调用返回后新的可执行程序能...
分类:
系统相关 时间:
2015-04-19 22:46:41
阅读次数:
220
compile和link是大多数语言从原代码生成可执行程序的两个步骤。之所有有这两个步骤因为几乎任何一个程序都不是用一个原文件写出来的。compile是先针对单独原文件进行处理。link是把compile处理的结果组合成一个完整的可执行文件。其实C/C++完全也可以一步成型,不需要compile和l...
分类:
编程语言 时间:
2015-04-18 21:51:46
阅读次数:
121
问题:工作中遇到一个需求:需要在ld script中使用类似C语言的define等宏定义来做一些判断和替换
实验:
1:理论上*.c中都能用,是否gcc也支持在ld script中直接用宏呢,结果:
arm-linux-ld:xxx.lds:2: ignoring invalid character `#' in expression
arm-linux-ld:xxx.lds:2: synt...
分类:
其他好文 时间:
2015-04-11 20:55:38
阅读次数:
927