当前位置: 首页 > news >正文

啤酒网站建设莱芜都市网征婚

啤酒网站建设,莱芜都市网征婚,最近火爆的新闻,wordpress网站绑定多个域名▒ 目录 ▒#x1f6eb; 问题描述1️⃣ 多版本vs报错指定VS路径2️⃣ error LNK2001: 问题排查通过IDA打开lib文件#xff0c;确认导出内容查看源码增加参数--editable#xff0c;重新编译3️⃣ error LNK2001: 外部符号__imp_?close_...去除__imp_#x1f6ec; 结论vcpkg… ▒ 目录 ▒ 问题描述1️⃣ 多版本vs报错指定VS路径2️⃣ error LNK2001: 问题排查通过IDA打开lib文件确认导出内容查看源码增加参数--editable重新编译3️⃣ error LNK2001: 外部符号__imp_?close_...去除__imp_ 结论vcpkg卸载重载编译指定版本的源码未验证修改源码进行编译 参考资料问题 描述 cpprestsdk之前编译过32位已经踩了一些坑本以为64位编译会顺风顺水然而事与愿违特此记录几个问题。 最终编译命令为vcpkg install cpprestsdk[websockets]:x64-windows-static --recurse --editable。 1️⃣ 多版本vs报错 目标编译为2019但是由于重装系统后直接安装了2022的vs导致没有了2019的x64 Native Tools Command Prompt for VS 2019环境后又安装2019才解决问题。 指定VS路径 vs2019和2022共存的情况下直接运行install命令将报下面错误。 这个错误信息一开始看的挺头晕后来认真看了错误提示发现vcpkg找到的路径是2022但是它也给出了文档连接https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md#VCPKG_VISUAL_STUDIO_PATH可以解决该问题。 小编以安装根目录J:\_ALL\CODE\vcpkg\vcpkg\和x64-windows-static的编译目标为例所以我们需要修改的文件是J:\_ALL\CODE\vcpkg\vcpkg\triplets\x64-windows-static.cmake。修改内容如下 set(VCPKG_VISUAL_STUDIO_PATH C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community) set(VCPKG_PLATFORM_TOOLSET v142)2️⃣ error LNK2001: 问题排查 运行install命令生成的lib进行集成的时候提示未找到__imp_?close_pending_tasks_with_errorwebsocket_client_task_impldetailsclientwebsocketswebQEAAXAEBVwebsocket_exception345Zweb::websockets::client::details::websocket_client_task_impl::close_pending_tasks_with_error的错误。 各种搜索没找到解决方案只能编译链接原理通过一步步排查了 通过IDA打开lib文件确认导出内容 通过删选关键字web::websockets::client::details::websocket_client_task_impl::查看导出列表的确没有导出函数close_pending_tasks_with_error。 查看源码 搜索源码定位到源码文件 J:\_ALL\CODE\vcpkg\vcpkg\buildtrees\cpprestsdk\src\ecb9e168c5-96a8d6ba89.clean\Release\src\websockets\client\ws_client.cpp。 函数close_pending_tasks_with_error的编译条件是#if !defined(CPPREST_EXCLUDE_WEBSOCKETS)也就是说当不定义CPPREST_EXCLUDE_WEBSOCKETS的时候就能将函数编译进去。 定位宏定义最终在文件J:\_ALL\CODE\vcpkg\vcpkg\buildtrees\cpprestsdk\src\ecb9e168c5-96a8d6ba89.clean\Release\include\cpprest\details\basic_types.h中找到下面代码。 #if defined(_WIN32) // Include on everything except Windows Desktop ARM, unless explicitly excluded. #if !defined(CPPREST_EXCLUDE_WEBSOCKETS) #if defined(WINAPI_FAMILY) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) defined(_M_ARM) #define CPPREST_EXCLUDE_WEBSOCKETS #endif #else #if defined(_M_ARM) #define CPPREST_EXCLUDE_WEBSOCKETS #endif #endif #endif #endif 不必管这些定义在代码最后直接取消宏定义 #undef CPPREST_EXCLUDE_WEBSOCKETS增加参数–editable重新编译 --editable的含义是不清空代码直接编译最终命令为 vcpkg install cpprestsdk[websockets]:x64-windows-static --recurse --editable 再次通过IDA查看导出函数可以看到lib中已经有函数close_pending_tasks_with_error了。 ps 貌似参数 --no-downloads也是可以的。 3️⃣ error LNK2001: 外部符号__imp_?close_... 去除__imp_ 通过上面的操作命名已经将函数编译到lib中了为啥还是报错呢想来想去只能是编译的类型不一样通过BCompare工具比较两个函数名可以看出需要的函数带__imp_。 查资料发现如果函数声明增加了__declspec(dllimport) 链接的时候函数名会加上__imp_前缀所以如果链接静态库 函数的声明不用增加__declspec(dllimport) 。如果链接动态库再增加__declspec(dllimport)。 定位到函数声明可以看到声明为_ASYNCRTIMP void close_pending_tasks_with_error(const websocket_exception exc);查看_ASYNCRTIMP的定义 所以在项目中增加_NO_ASYNCRTIMP即可。 也可以在引入cpprest头文件之前定义_NO_ASYNCRTIMP宏如下图所示 结论 解决思路 确认lib中包含目标函数确保目标函数编译后的名字一模一样。 vcpkg卸载重载 开发过程中经常要修改参数重新编译库已经安装的库无法重新安装只能先卸载才能继续安装。 vcpkg remove cpprestsdk:x64-windows-static --recurse编译指定版本的源码未验证 通过命令.\vcpkg x-history cpprestsdk查看cpprestsdk历史版本。 小编以安装根目录J:\_ALL\CODE\vcpkg\vcpkg\为例所以我们需要修改的文件是J:\_ALL\CODE\vcpkg\vcpkg\ports\cpprestsdk\vcpkg.json。修改内容如下 也就是指定字段version-semver。 参考资料 随心所欲地对vcpkg依赖进行版本控制 https://zhuanlan.zhihu.com/p/352709760https://learn.microsoft.com/zh-cn/vcpkg/users/versioning 修改源码进行编译 vcpkg install每次默认都将代码删除然后再下载解压代码所以直接修改代码会被清除。 执行命令中增加参数--editable将不再删除代码。命令如下所示 vcpkg install cpprestsdk[websockets]:x64-windows-static --recurse --editable。 参考资料 【vcpkg】cpprestsdk编译链接及实战 Chrome Devtool Protocol https://blog.csdn.net/kinghzking/article/details/125772160vcpkg环境变量官方文档 https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md#VCPKG_VISUAL_STUDIO_PATHVCPKG 环境变量 https://www.cnblogs.com/vcpkg/p/15019968.htmlvcpkg版本说明 https://learn.microsoft.com/zh-cn/vcpkg/users/versioning
http://www.hkea.cn/news/14357877/

相关文章:

  • .net 网站开发工程师网页设计流程要怎么写
  • 绿色食品网站建设论文seo网络推广公司报价
  • 网站点击率代码如何做购物返佣金网站
  • 后台网站模板htmlwordpress不间断音乐
  • 成都科技网站建设咨询注册网站账号审核不通过无法登陆怎么办
  • 辽宁专业网站建设大全wordpress只显示首页
  • 做信息网站要注册什么类型公司广告投放公司
  • 手机怎么做网站免费的黑色大气网站源码
  • 苏州网站设计公司价格wordpress弹窗注册代码
  • 湖北建网站公司电脑上多了个wordpress
  • php网站后台进不去天猫商城网站风格
  • 做滋补品销售有什么网站百度云网盘搜索引擎
  • 咨询类网站建设阿里云 oss做网站
  • 北京网站设计公司飞沐刚刚传来最新消息
  • 可以做高中题目的网站网站keywords标签怎么写
  • 网站访问拒绝河南响应式官网建设哪里好
  • 做兼职上哪个网站中山如何建设网站
  • 1元涨1000粉丝网站建筑公司注册
  • 先做网站装修还是先买虚拟主机北师大 网页制作与网站建设
  • 片网站无法显示怎么做网页个人简介
  • 攻击网站步骤wordpress 目录 导航
  • 网站pv uv统计网店美工心得体会
  • 淄博网站制作高端服务北京城建道桥建设有限公司网站
  • 陕西省建设工程质量监督局网站找人做网站需要什么软件
  • 关于h5的网站模板开个网站做英语培训
  • onethink 网站网站怎么容易被百度收录
  • 中国建设银行产品信息网站58同城网站建设推广排名
  • 瑞安地区建设网站300个吉祥公司名字
  • 新津县建设局网站搜狗网站提交入口
  • 能打开的网站郑州网站建设公司qq