我正在开发一个 C++ 项目,该项目生成其他团队使用的库。它有几种不同的口味:
- Win32 动态调试
- Win32 静态调试
- Win32 发布动态
- Win32 发布静态
- x64 动态调试
- x64 静态调试
- x64 发布动态
- x64 发布静态
我想知道关于如何命名 dll 的最佳智慧是什么以及不同命名约定的参数是什么。我是将库输出到不同的目录,还是在库的末尾附加一些字母以区分它们,还是其他什么?一个问题是,如果我使用目录,但不给所有的库起不同的名字,库的用户就会遇到问题,因为他们不小心使用了错误的库。这些担忧是否成立?
非常感谢。
最佳答案
使用 Microsoft 约定可能是个好主意。静态版本以“lib”为前缀。调试版本是后缀“d”。 64 位版本位于 amd64 子目录中。这不是最伟大的约定,但至少它很熟悉。
在 MSVC 中,您可以使用预定义的 _DLL 宏来检测用户是否选择了 CRT 的 DLL 版本。如果选择64位编译,则定义_WIN64宏。足以生成所需的#pragma comment(lib, "name") 指令。
关于c++ - 特定于平台的 lib 文件应如何命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469303/