2014-10-27 204 views
1

如果.lib文件用于动态链接的静态链接和.dll文件为什么我可以在C/C++ - >代码生成 - >运行时库选项中指定在构建显式静态时选择多线程或多线程DLL库(即制作.lib时)还是建立项目并链接到.lib库?visual studio 2013选项

+1

此设置适用于与您正在生成的目标无关的运行系统。我的意思是,你可以创建一个静态的.lib与动态CRT或DLL与静态CRT和其他几种组合.. – drescherjm 2014-10-27 20:06:33

+0

什么,确切地说,CRT和什么时候我想要使它静态或动态?我想静态链接我的库,如果它是.lib文件,那么这是保证吗?运行时间设置必须匹配所有库的权利? – user3353819 2014-10-27 20:07:07

回答

2

Visual Studio允许您指定如何在C/C++->Code Generation->Runtime Library下将CRT集成到您的项目中。此项目设置控制如何显式或内部使用C/C++例程(例如,异常函数或STL例程)将链接到您的项目。

您可以通过在编译期间指定/MT/MD标志来创建静态库,该库使用CRT动态或静态地使用CRT。

关于优点/缺点我链接this answer,其中有很多需要牢记的要点。最后要注意的是:如果你的项目要使用多个静态库(包括你的.lib文件),你应该确保这个CRT选项在链接阶段匹配,否则你可能会遇到the (in)famous LNK4098 error