相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html
相关博文:http://blog.chinaunix.net/uid-20682147-id-5096676.html
假设有如三个源代码文件:
$ cat a.cpp void a() { }
$ cat b.cpp extern void a(); void b() { a(); // 调用a.cpp中的a() }
$ cat x.cpp extern void b(); int main() { b(); // 调用b.cpp中的b() return 0; } |
对应的Makefile文件:
all: x
liba.a: a.o libb.a: b.o x: x.o liba.a libb.a # 问题出在这儿 g++ -g -o $@ $^
a.o: a.cpp g++ -g -c $^ b.o: b.cpp g++ -g -c $^ x.o: x.cpp g++ -g -c $^
clean: rm -f a.o b.o x.o x |
使用上面的Makefile编译,将会遇到如下所示的“undefined reference”问题:
g++ -g -c x.cpp g++ -g -c a.cpp g++ -g -c b.cpp g++ -g -o x x.o liba.a libb.a # 改成“g++ -g -o x x.o libb.a liba.a”即可解决 libb.a(b.o): In function `b()': /tmp/b.cpp:2: undefined reference to `a()' collect2: ld returned 1 exit status make: *** [x] Error 1 |
这个问题的原因是b.cpp依赖a.cpp,gcc要求(实际是ld要求)libb.a须放在liba.a前面,即需要改成:g++ -g -o x x.o libb.a liba.a,也就是被依赖的库需要放在后头。
这是最常规的解决办法,除此之外,只需要加入--start-group和--end-group两个链接参数,即可保持被依赖的库放在前头,也就是改成如下即可:g++ -g -o $@ -Wl,--start-group $^ -Wl,--end-group。
这里的“-Wl,”表示后面跟着的参数是传递给链接器ld的,gcc不关心具体是啥。“--start-group”表示范围的开始;“--end-group”表示范围的结束,是可选的。位于“--end-group”之后的仍然要求被依赖的库放在后头。注意“--start-group”不能重复,相关链接参数:--whole-archive 和 --no-whole-archive。
替换元素与非替换元素<body> <div>hello</div> <span>world</span> <img src="./imgs/路飞.jpg" alt="路飞"></body>div,span,img{ width:100px; height:100px; background-color:lightskyblue; margin:10px;}块级元素可以设置width
转载http://www.xwood.net/_site_domain_/_root/5870/5874/t_c262627.html一、异常描述启动weblogic应用服务,通过部署名称访问服务,报出“Error 503--Service Unavailable ..From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:..”,如下图所示异常描述如下1 2 3 4 5 6 ...
在js文件里边最下方有一个onShareAppMessage函数,在这个函数里边添加分享的内容和路径,如下:/** * 用户点击右上角分享 */ onShareAppMessage: function() { return { title: '在这里输入标题', desc: '在这里输入简介说明', path: '../home/...
现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI、VGA、HDMI、DP等,由于每种接口的特性和带宽不同,使得不同接口的EDID也不同。使用哪个接口,PC读到的就是哪个接口的EDID。可能的原因:信号源设备,比如PC的显卡或是笔记本电脑无法读取显示器的EDID信息。可能的原因:信号源设备,比如PC的显卡或是笔记本电脑无法读取显示器的EDID信息。
题目描述小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:首先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi...
1 InstructionEDID: Extended Display Identification Data(扩展显示标识数据)是一种VESA (Video Electronics Standards Association)标准数据格式,其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串(摘自百度百科“EDID”词条...
Python读取xml文档(遍历法) (2010-04-17 15:27:33)转载▼标签: python xml dom 节点 it分类: Python 参考资料《dive into python》 Python读xml文档的方法有多种,这里介绍用dom模块,需要下载PyXML- 0.8.4.win32-py2.5.exe库(我用的python2.5)。 假如我们有个xml文档...
现在的显示设备比如显示器,电视等都HDMI接口,那通常每个HDMI接口都保留有一份EDID数据,这个数据可以存在程序里面由系统启动过程中来初始化,更常见的做法是每个HDMI口会有一个EEPROM来保存这份数据,这个EEPROM也只是有256bytes大小。外接设备如DVD播放器在HDMI热插拔的时候就会通过HDMI的DDC通道来读取EDID数据。EDID里面主要是定义了这显示设备所支持的图像分辨率
Linux编译参考文档http://my.oschina.net/u/1982421/blog/304633Uboot学习参考资料http://blog.csdn.net/andy_wsj/article/category/1335685用BusyBox创建文件系统的参考http://www.th7.cn/system/lin/201403/50580.shtml好
DDC EDID 介绍 <!--google_ad_client = "pub-6952090322455314";google_alternate_ad_url = "http://www.avresearcher.com";google_ad_width = 468;google_ad_height = 15;google_ad_format = "468x1
java httpclient https 请求
AndroidManifest.xml:Declares a security permission that can be used to limit access to specific components or features of this or other applications. android:icon="drawable