什么是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,但除此之外,没有标准.