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

最讨厌网站网络宣传策划方案

最讨厌网站,网络宣传策划方案,建设上海公司网站,网站服务器打不开目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1)set() 相关语句 2)target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错:报错…

目录

0.环境

1.问题简述

2.分析报错原因

3.解决方法

1)set() 相关语句

4.参考


0.环境

windows11 、 vs-code 、 qt 、 c++、编译器为vs2019-x86_amd64

1.问题简述

项目编译release版本时会报错:报错的库叫【logDll】

[build] main.obj : error LNK2019: 无法解析的外部符号 "public: static class LogDll * __cdecl LogDll::Getlog4qt(void)" (?Getlog4qt@LogDll@@SAPEAV1@XZ),函数 main 中引用了该符号 [D:\work\POCT-gitee\poct-packageAll\poct\build\qPCRAnalyser\qPCRAnalyser.vcxproj]
[build] main.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl LogDll::InitLog(class QString const &)" (?InitLog@LogDll@@QEAA_NAEBVQString@@@Z),函数 main 中引用了该符号 [D:\work\POCT-gitee\poct-packageAll\poct\build\qPCRAnalyser\qPCRAnalyser.vcxproj]
[build] main.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl LogDll::debug(class QString const &,char const *,int,class QString)" (?debug@LogDll@@SAXAEBVQString@@PEBDHV2@@Z),函数 main 中引用了该符号 [D:\work\POCT-gitee\poct-packageAll\poct\build\qPCRAnalyser\qPCRAnalyser.vcxproj]

2.分析报错原因

由于缺少正确的库链接或者路径设置不正确所导致

3.解决方法

在对应的【CMakelists.txt】中加入对应的库链接代码

我一共加了两句对应的代码

1)set() 相关语句

set(Log4Qt_LIBRARIES_DIR ${Log4Qt_LIBRARIES_DIR} "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${config}")
  • 在CMakeLists.txt文件中,set命令用于设置一个变量的值。在这个特定的语句中,Log4Qt_LIBRARIES_DIR变量被设置为${Log4Qt_LIBRARIES_DIR}和"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${config}"的组合。
  • ${Log4Qt_LIBRARIES_DIR}是一个预定义的变量,它的值是之前已经设置过的Log4Qt_LIBRARIES_DIR变量的值(如果有的话)。这种语法${variable_name}表示引用另一个变量的值。
  • "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${config}"是一个路径字符串的拼接,其中CMAKE_LIBRARY_OUTPUT_DIRECTORY是CMake内置变量,表示生成库文件的输出目录,而${config}可能是一个用户定义的变量,表示配置名称(例如Debug、Release等)。
  • 所以,这个语句的作用是将${Log4Qt_LIBRARIES_DIR}的值与"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${config}"拼接成一个新的路径,并将结果保存在Log4Qt_LIBRARIES_DIR变量中。
  • 这样做的目的可能是为了设置一个特定配置下的库文件目录路径。通过设置Log4Qt_LIBRARIES_DIR变量的值,可以在后续的构建过程中使用这个路径来链接或安装库文件。
target_link_libraries(${PROJECT_NAME} PRIVATE debug logDll_d optimized debug logDll)
  • 在CMakeLists.txt文件中,target_link_libraries命令用于为目标(target)添加链接库。${PROJECT_NAME}是一个预定义的变量,它保存了当前项目的名称。
  • 这个语句表示将名为logDll的库文件链接到${PROJECT_NAME}目标中。PUBLIC关键字表示将链接库作为target_link_libraries命令的一部分公开指定,同时还将该链接库添加到${PROJECT_NAME}目标的接口中,以便后续的目标可以链接此库。
  • 在链接过程中,如果${PROJECT_NAME}目标使用了logDll库文件中的函数或变量,那么该库文件就会被自动链接到${PROJECT_NAME}目标中,从而使得${PROJECT_NAME}目标可以正常编译和运行。
  • 总之,target_link_libraries(${PROJECT_NAME} PUBLIC logDll)的作用是将logDll库文件链接到当前项目中,并使得该库文件对外可见,以便其它依赖于该库的目标可以链接它。

添加之后,报错解决,我也是在网上找了很久没找到解决方式,请教了项目组的大神后解决的,特此分享

4.参考

微软官方给出的LNK2019的可能原因是:

有多种方法会造成此错误。 所有这些方法都涉及引用链接器无法解析或无法查找其定义的函数或变量。 编译器可以识别未声明符号的情况,但无法判断未定义符号的情况。 这是因为定义可能位于不同的源文件或库中。 如果引用了未定义的符号,链接器会生成未解析的外部 (external) 符号错误。

也分析了一些导致 LNK2019 的常见问题,具体详见链接:

链接器工具错误 LNK2019 | Microsoft Learn

--END--

http://www.hkea.cn/news/913826/

相关文章:

  • 百家号如何给网站做推广推广方案是什么
  • 西安三网合一网站建设产品线上推广方案
  • 2023年免费b站入口百度网站优化
  • 响应式网站建设有利于seo网站发布与推广方案
  • 网页制作教程课件seo推广排名重要吗
  • 小规模纳税人企业所得税怎么征收广州seo招聘
  • 济南企业自助建站网络营销策划公司
  • iis 新建网站 要登录温州seo推广外包
  • 个人想做企业网站备案惠州seo代理商
  • 做公务员题的网站口红的推广软文
  • 福州网站建设 联系yanktcn 04上海百网优seo优化公司
  • 网站备案号如何获得网站建设营销推广
  • 物流网站开发公司西安 做网站
  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元
  • 做景观设施的网站网络营销推广要求
  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语