【发布时间】:2014-05-07 10:29:29
【问题描述】:
对于 Windows 上的 C++,重要的是所有链接在一起的库都已使用相同的 C++ 运行时库进行编译。这同样适用于纯 C 代码吗?
更具体地说,我想为许多不同的 Visual Studio 版本(静态和动态)发布一个 SDK。此 SDK 与 libpng 链接,这是一个 C 项目(不是 C++)。我是否仍然需要为每个 Visual Studio 版本构建一个 libpng 二进制文件,或者运行时库的 C 部分是否相同?
【问题讨论】:
-
看具体代码。如果不同的模块使用不同的 C 运行时实例,则需要检查许多事情,例如,释放一块内存的模块始终是分配它的那个模块;您不要尝试跨模块边界发送 C 运行时流;您不要跨模块边界使用 errno 或其他全局变量;等等。
标签: c++ c windows linker libraries