c++ - Visual Studio 2013 选项

标签 c++ visual-studio linker static-libraries

如果 .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/

相关文章:

c++ - 在 Windbg 中转储值和填充

c++ - 为什么结构体的 sizeof 不等于每个成员的 sizeof 之和?

visual-studio - TFS在线。在合并到代码库之前对开发人员 checkin 创建代码审查

python - 使用pip安装时编译出错

gcc - 带有自定义 gcc 安装的 LIBRARY_PATH 的优先级

c++ - cmake 添加前缀到链接器

c++ - 为什么我不能用 "unsigned"限定别名类型?

.net - Visual Studio 6 无法加载在 .net 2.0 中编译的 COM dll

c - 微型 C 编译器链接我的程序集目标文件

c++ - 算术类型(C++ 中)的定义是为了满足各种硬件的特殊性