C++ Visual Studio C++;:使用/MT会多次链接运行时库吗?

C++ Visual Studio C++;:使用/MT会多次链接运行时库吗?,c++,compilation,C++,Compilation,我知道/MT编译器选项会导致应用程序使用运行时库的多线程静态版本 假设我的解决方案包括作为Win32控制台应用程序的主项目PrjMain,以及作为静态库编译的PrjLib,两者都使用\MT。CRT是否会链接到最终的PrjMain.exe两次?一次是通过PrjMain,一次是通过PrjLib作为静态库链接?CRT只会链接一次。只要将项目和库编译成一个二进制文件,主项目和PrjLib库都将链接到同一个静态CRT 问题来自于将使用静态CRT的模块与在一个二进制文件中使用DLL CRT的模块混合,或者使

我知道
/MT
编译器选项会导致应用程序使用运行时库的多线程静态版本


假设我的解决方案包括作为Win32控制台应用程序的主项目
PrjMain
,以及作为静态库编译的
PrjLib
,两者都使用
\MT
。CRT是否会链接到最终的
PrjMain.exe
两次?一次是通过
PrjMain
,一次是通过
PrjLib
作为静态库链接?

CRT只会链接一次。只要将项目和库编译成一个二进制文件,主项目和
PrjLib
库都将链接到同一个静态CRT

问题来自于将使用静态CRT的模块与在一个二进制文件中使用DLL CRT的模块混合,或者使用同时使用静态库的多个二进制文件(可执行文件和DLL)。在这种情况下,您将加载两份CRT,这可能会导致问题