您的位置:首页 > 其它

程序编译、链接相关问题(持续更新中......)

2017-06-24 10:06 267 查看
1、有次在程序编译过程中,总是出现“undefined reference to *”的问题,检查所需的库都已添加,最后确认发现是库的顺序不对的问题。需要注意:需要依赖其它库的库一定要放在前面。

2、当对动态库与静态库混合连接的时候,使用-static会导致所有的库都使用静态连接的方式。这时需要作用-Wl的方式:

gcc test.cpp -L. -Wl,-Bstatic -ltestlib  -Wl,-Bdynamic -ltestdll


另外还要注意系统的运行库使用动态连接的方式,所以当动态库在静态库前面连接时,必须在命令行最后使用动态连接的命令才能正常连接,如:

gcc test.cpp -L. -Wl,-Bdynamic -ltestdll -Wl,-Bstatic -ltestlib  -Wl,-Bdynamic


最后的-Wl,-Bdynamic表示将缺省库链接模式恢复成动态链接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编译链接