由vc2005 编译错误引出来的

五一来了,公司放假了,生活的乏味,我竟然选择了五一去公司加班, 看着满大街的人流 真的是觉得自己已经老了,
闲话少说了,前两天sb 导论老师实在怕我闲着让我总结一下开源库egg的在vc下的使用方法,昨天没事自己试了一下,在vc6下十分简单 因为是静态库只要简单的包含头文件 并且在vc++目录中添加搜索路径 即可 (当然要有lib和.h文件)

但在2005下问题就有了 因为原来egg库是vc早期版本生成的库 在链接过程中 由于是控制台程序所以默认是调用单线程的静态库 LIBCD.lib(debug版本)和LIBC.lib(release) 故会出现打不开LIBCD.lib的错误 显示:fatal error LNK1104: 无法打开文件“LIBC.lib”

用原先的方法将vc6的库函数和头文件覆盖2005后会显示LIBCD和现有文件冲突,未找到外部解析文件等,可见导入库行不通.

这时的解决方法很简单 只要在项目属性中的链接器栏中在忽略特定库中写入打不开的文件的名称 入本例中的LIBCD.lib 在完全编译就好了;

这时我们就要看看  很烦人的所谓的单线程静态库,多线程库了, 这些库文件是微软的运行时刻库作用是在生成完obj文件后链接过程中初始化全局变量,导入项目入口函数,获取系统信息等等,原先的vc'老版本 还有就是多线程程序的支持,老版本的win32函数有creatthread,新的使用LIbCMT.lib的有beginthreat,
这些运行时库对应有
LIBCD.lib LIBC.lib 静态单线程库(后面加d表示DEBUG版) /ML
LIBCMT.lib LIBCMTD.lib 对应的是静态多线程库/MT
MSVCRT.lib 动态链接库  /MD
最后一个是编译选项;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值