如何将cef静态库(/MT)编译为动态库(/MD) 您所在的位置:网站首页 wrapperdll 如何将cef静态库(/MT)编译为动态库(/MD)

如何将cef静态库(/MT)编译为动态库(/MD)

#如何将cef静态库(/MT)编译为动态库(/MD)| 来源: 网络整理| 查看: 265

用过cef的童鞋应该知道,使用vs编译cef源码生成的是libcef_dll_wrapper.lib静态库,且运行库是多线程(/MT),无法在/MD(多线程DLL)的应用程序上使用。当然,如果你的应用程序支持使用静态库的话就可以无视本文了。我们项目应用就是/MD的,为了使用cef去改变程序配置是不现实的,所以只能想办法将cef编译为动态库!

我用的cef是cef_binary_3.2171.1972_windows32,源码csdn上有,我就不上传了,源码下载后的makefile方法其他文章有介绍,此处省略。

我使用在这里插入图片描述 我用的是vs2010,编译完后打开cefclient2010.sln。下面是主要内容

第一步,更改项目属性。

因为我们要用的是dll,所以将项目配置类型改为dll。修改路径:项目》属性》配置属性》常规》配置类型》动态库(.dll) 在这里插入图片描述 因为我的应用里使用的“在共享DLL中使用MFC”,所以此处一起做了更改。

第二步,关闭警告错误。

原cef库将警告视为错误,所以只改了第一步中的内容还不行,需要关闭这个选项,路径:项目》属性》C/C++》常规》将警告视为错误》否 在这里插入图片描述

第三步,导入原始cef库。

项目》属性》配置属性》连接器》输入》附加依赖项》添加msvcrt.lib;libcef.lib;

OK,上面三步做完,可以编译了,当然,最好设置一下项目输出路径,以后可以方便的拷贝lib和dll。编译成功后生成 libcef_dll_wrapper.dll和libcef_dll_wrapper.lib 在这里插入图片描述 这就是以后我们项目要使用的了。当然,此时这两个库还不能用,为什么?因为缺少了dll最主要的部分:导出函数。由于个人需求不同,所以此处不一一列举具体导出函数,文末有demo下载地址,可以具体查看。

第四步,提取导出库和头文件等。具体提取内容在demo中查看。 在这里插入图片描述 下面是demo运行结果: 在这里插入图片描述 导出的cef资源和MFC DEMO点这里下载



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有