博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCC依赖库顺序问题
阅读量:6639 次
发布时间:2019-06-25

本文共 517 字,大约阅读时间需要 1 分钟。

今天在把linux下做的ipmsg移植到windows过程中,因为包含了一个开源库SimpleSocket,而这个库又引用了winsock2,没太注意就写下了下面的makefile:
g++ -o tt tt.o -lws2_32 -lclsocketd
结果报出了N多丑陋的undefined reference..之后尝试将-lws2_32和-lclsocketd交换位置后,编译通过。
上网查了下,发现gcc编译时依赖库的顺序是很重要的。比如说,liba.a依赖于libb.a,则必须写成-la -lb,似乎感觉这种顺序很奇怪。另外参考网上 的内容,在库比较多依赖关系比较复杂或者相互依赖或者自己不清楚的情况下,可以采取下面2种办法:
1、-la -lb -la,丑陋,但是有效。
2、gcc有这样的选项,-Xlinker,写成如下格式可以强制gcc重复查找依赖库:
 
g++ -o tt tt.o -Xlinker "-(" -lws2_32 -lclsocketd -Xlinker "-)" 
这样在括号中的库的依赖关系就不需要你操心啦,虽然会延长链接时间。不过本人在实际使用过程中,g++认不出"-)",不加也可以链接成功。
 

 

转载地址:http://khivo.baihongyu.com/

你可能感兴趣的文章
Windows桌面开发者的必备软件
查看>>
Android -- 是时候来了解一波EventBus了
查看>>
Echarts X轴时间类型
查看>>
NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、改变)...
查看>>
Android学习记录:ViewPager实现欢迎页
查看>>
设置 git/npm/bower/pip/gem镜像或代理
查看>>
saltStack的event接口通过mysql数据库接收SaltStack批量管理日志
查看>>
【TheMatrix】The Matrix [ Reloaded] [Revolutions]
查看>>
汇编笔记(2) 多个段
查看>>
CF集萃2
查看>>
iOS开发之UIApplication
查看>>
ZooKeeper在线迁移
查看>>
修改FastColoredTextBox控件完成选择
查看>>
自动化测试和手工测试
查看>>
Leangoo到底好在哪里?
查看>>
Firefly自动售货机解决方案
查看>>
176. Second Highest Salary SQL查询语句中的 limit offset
查看>>
操作系统的内存对齐机制学习笔记
查看>>
web app 和移动端app(混合app---react native;vue+veex) 开发技术和区别
查看>>
Python高级正则
查看>>