文章目录
1.MT与MD的定义
- 1.MT与MD的定义
- 2.打开项目
- 3.修改选项
- 4.验证测试
- 5.作者答疑
/MT是 "multithread, static version ” 意思是多线程静态的版本,定义了它后,编译器把LIBCMT.lib 安置到OBJ文件中,让链接器使用LIBCMT.lib 处理外部符号。 /MD是 "multithread- and DLL-specific version” ,意思是多线程DLL版本,定义了它后,编译器把 MSVCRT.lib 安置到OBJ文件中,它连接到DLL的方式是静态链接,实际上工作的库是MSVCR80.DLL。 即:静态运行时库:LIBCMT.lib 动态运行时库:MSVCRT.lib + MSVCR80.DLL 在嵌入式运行环境中,宿主软件大部分可能采用MD的模式,加载运行C++运行时库,这时如果采用MT模式引入库文件,会导致编译链接错误,需要改为MD,本文亲测,在VS2017环境下,可以通过修改libcef_dll_wrapper库环境为MDD/MD,即可成功修改过程来。具体步骤如下:
2.打开项目 打开CMake生成项目,如下图所示:
将libcef_dll_wrapper运行库修改为MDD。
将cefsimpple项目对应选项修改为MD,测试可正常运行。
如有疑问,请留言。