同一工程中链接不同的C库到底是否会有问题?除了编译时的问题?
手上是一个编码器+网络的应用,我的工程依赖编码器静态库xxx.lib
编码器的静态库由异地同事开发,链接单线程C库(libcd之类) 我这边是多线程工程,
链接时碰到一处警告说libcd和多线程版本冲突,/NODEFAULTLIB:"LIBC" /NODEFAULTLIB:"LIBCD"忽略了
(我当然直接问他要多线程版本,但是对方认为编译过了属于没问题= =!,说出问题了再说吧,我估计可能对方是考虑性能,其实真出了问题的话,这种问题一定会隐藏很深,岂能随便定位到的?不过作为新员工,不便多说是非)
然后编译出现了奇怪的问题
这个库必须加在source file下 而不能#pragma comment(lib, "xxx.lib")
否则是"LINK : fatal error LNK1196: invalid or corrupt import object: unknown version"
检查链接详情,发现加在工程文件视目录source file下,xxx.lib中有一个符号是首先被链接器定位的,
而在stdafx.h中写pragma,则这个符号是随后才被定位,而导致LNK1196
现在是加在source file下凑合着过,我想问大大们,有没有因为链接多个C库,后来用开关忽略一个而引起过实际的问题?或者说,这种威胁是否真的存在?谢谢!300奉上。