qq_65364446 2024-07-25 10:48 采纳率: 100%
浏览 3
已结题

C++FEBioStudio中cout

问题描述:
在对大型开源代码 FEBioStudio 这个项目进行修改代码时,我点击了自己添加的一个功能后发生错误,发生的这个难以定位的错误造成了assert操控的强制退出。
因为原代码使用了多个assert,很难找到是哪个assert附近出现了问题,而且assert没有输出错误描述。

使用的编程语言与ide:
c++,并且在VS 2022上修改代码,在CLion上编译和运行(CLion 相比cmake+VS 起的作用没有区别)。

目的:我想定位发生的错误,并且解决。

采用的方法:
因为不会c++标准库的日志log,于是对涉及的函数们添加了多条std::cout语句,用以输出自定义信息。但是,在CLion编译时,窗口不显示我写的输出语句,分别尝试了run 和debug ,但是对应的窗口都没有。

可能的原因:
这个项目成功编译后产生的是ui界面,我猜测是因为这个,所以cout没有作用。

问题:

请问怎么实现定位这个错误、并且解决呢?
还是想用std::cout来定位错误,怎么干才能让我能够看到std::cout输出的信息呢?
用c++标准库的哪个日志性能最好呢?
我查找网络+资料,目前没有找到c++标准库自带的日志,只有别人编写的。
所以我是用的google log,但是VS 报错274个错误。明明我已经把include和lib放在了工程的正确位置,vs中也添加了include和库路径,但是googlr log的文件还是报错,vs也找不到他的函数。
我真的不知道应该怎么办了,尝试了能够想尽的一切办法了。

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-25 10:48
    关注

    引自免费微信小程序:皆我百晓生

    你的问题涉及多个方面,包括错误定位、日志输出以及第三方库的使用问题。我会一一为你解答。

    1. 如何定位错误

    对于大型项目中的错误定位,通常有以下几种方法:

    • 使用调试器(Debugger):你可以在出错的代码附近设置断点,然后逐步调试以找到具体出错的位置。VS 2022和CLion都支持强大的调试功能。
    • 使用日志输出:你已经尝试使用std::cout进行输出,但可能由于某些原因无法看到输出。下面我会解释如何解决这个问题。
    • 使用断言(assert):虽然assert没有输出错误描述,但你可以尝试在关键的代码位置添加自定义的断言信息,以帮助定位问题。

    2. 如何看到std::cout的输出信息

    在CLion中,你可以通过以下步骤查看std::cout的输出信息:

    • 运行或调试程序时,确保程序的控制台输出窗口是可见的。在CLion的底部面板中,通常会有一个控制台窗口。
    • 如果控制台窗口默认关闭或不可见,你可以在CLion的底部工具栏中找到一个表示控制台的小图标,点击它以显示控制台窗口。
    • 确保你的程序是以调试模式(Debug mode)运行,而非发布模式(Release mode)。发布模式下可能不会显示所有的输出信息。

    3. 使用C++标准库的日志性能最好的是哪个?

    C++标准库本身并没有专门的日志库,但你可以使用C++标准库中的<iostream>进行简单的日志输出。对于更高级的日志需求,可以考虑使用第三方日志库,如log4cpp、spdlog等。这些库通常提供了更丰富的功能和更好的性能。关于性能问题,不同的日志库会有不同的性能特点,你可以根据项目的具体需求进行选择。

    4. 关于Google Log在VS中的使用问题

    如果你在使用Google Log时遇到大量错误,可能是由于以下几个原因:

    • 配置问题:确保你已经正确配置了Google Log的include和lib路径。在VS中,你需要检查项目属性中的包含目录和库目录设置。
    • 版本问题:确保你使用的Google Log版本与你的项目兼容。
    • 链接问题:确保你已经正确链接了Google Log的库文件。

    针对这些问题,你可以尝试以下解决方案:

    • 仔细检查你的项目配置,确保包含目录和库目录设置正确。
    • 尝试使用不同版本的Google Log库。
    • 查看具体的报错信息,根据报错信息进行针对性的解决。

    最后,对于复杂的项目,错误定位可能会比较困难。除了上述方法外,你还可以尝试寻求社区帮助,如Stack Overflow等网站,向其他开发者寻求建议和帮助。希望这些建议能帮助你解决问题!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月3日
  • 已采纳回答 8月26日
  • 创建了问题 7月25日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?