对于Windows上的C ++,所有链接在一起的库都必须使用相同的C ++运行时库进行编译,这一点很重要。同样适用于纯C代码吗?
更具体地说,我想针对许多不同的Visual Studio版本(静态和动态)发布一个SDK。此SDK与C项目(不是C ++)的libpng链接。是否仍需要为每个Visual Studio版本构建一个libpng二进制文件,或者运行库的C部分相同?
最佳答案
即使使用纯C代码,也不会出现在一个模块中释放了使用malloc分配的内存的情况。这不仅仅是使用相同版本的库的问题:为了支持此类跨模块内存操作,模块必须使用相同的库实例。