如果 .lib 文件用于静态链接而 .dll 文件用于动态链接,为什么我可以在 C/C++ -> 代码生成 -> 运行时库选项中指定在构建显式静态库时选择多线程或多线程 DLL(即当制作 .lib) 或构建项目并链接到 .lib 库时?
最佳答案
Visual Studio 允许您指定 CRT将在 C/C++->Code Generation->Runtime Library
下集成到您的项目中。此项目设置控制显式或内部使用的 C/C++ 例程(例如异常函数或 STL 例程)将如何链接到您的项目。
您可以通过在编译期间指定/MT
或/MD
标志来创建动态或静态使用CRT 的静态库。
关于优点/缺点我正在链接this answer其中有一个很好的要点列表。
最后一件事要注意:如果您的项目要使用多个静态库(包括您的 .lib 文件),您应该确保此 CRT 选项在链接阶段匹配,否则您可能会遇到 the (in)famous LNK4098 error .
关于c++ - Visual Studio 2013 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26595833/