什么是MSVC DLL,静态库和导入库的正确命名约定

什么是MSVC库构建的标准或“最受欢迎”命名约定.

例如,对于以下平台,库foo具有以下约定:

Linux的/ GCC:

shared: libfoo.so
import: ---
static: libfoo.a

Cygwin的/ GCC:

shared: cygfoo.dll
import: libfoo.dll.a
static: libfoo.a

在Windows / MinGW的:

shared: libfoo.dll
import: libfoo.dll.a
static: libfoo.a

什么应该用于MSVC buidls?据我所知,通常名称是foo.dll和foo.lib,但是你通常如何区分导入库和静态库?

注意:我问,因为CMake在他们之间创建了相当unpleasant的冲突,将导入和静态库命名为foo.lib.见bug report.答案会
帮助我说服开发者解决这个bug.

您通过扩展名区分库和.dll.但是您可以通过文件名(而不是扩展名)区分导入库和静态库.

对于构建为静态库的一组代码,或者存在dll的静态库,不存在导入库的情况.这是两个不同的东西.

没有单个MSVC标准文件名约定.通常,以“D”结尾的库名通常是库代码的调试版本,msvcrtd.dll和msvcrt.dll,但除此之外,没有标准.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...