疑难杂症

本文列举了开发过程中的各种问题及其解决办法,包括Paraview编译错误、VS2015/2017的std::condition_variable::wait_for bug、PyQT5安装问题、std::numeric_limits::max()使用、跨平台编译错误、ifstream读取文件问题以及Python调用C++ DLL失败等,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文记录开发过程中遇到的各种奇怪问题
1:Paraview 5.8.1编译的时候出现错误==“error: fatal error C1002: compiler is out of heap space in pass 2”==
解决方式参考:https://discourse.paraview.org/t/fatal-error-c1002-compiler-is-out-of-heap-space-in-pass-2/3021
具体操作:Disable VTK-m by setting the PARAVIEW_USE_VTKM cmake option to false (you will miss some features in ParaView)
2:WINDOWS上面std::condition_variable::wait_for bug on vs2015&vs2017: https://developercommunity.visualstudio.com/content/problem/438027/unexpected-behaviour-with-stdcondition-variablewai.html

3:PyQT5安装报错
开了代理也不好用,最后用这个命令安装解决
sudo python3 -m pip install pyqt5==5.14.0

然后报错 ModuleNotFoundError: No module named ‘PyQt5.sip’
处理方式,安装老版本的pyqt5
sudo python3 -m pip install pyqt5==5.10.1

报错,命令多执行几次就行了:ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: ‘/home/cpf/.local/bin/rosversion’
Check the permissions.

4:std::numeric_limits::max()报错
处理方式参考https://stackoverflow.com/questions/1394132/macro-and-member-function-conflict
std::numeric_limits::max()修改成 (std::numeric_limits::max)();

5:编译错误,未声明的类型。
具体现象:在Ubuntu上面可以编译过,但是在Windows上报错 “undeclared identifier”。
处理方式:使用Notepad++显示所有字符,将“\r\n”全部替换成“\n”,然后将“\n”再全部替换回“\r\n”。
可能是换行符号引入的编译错误。

6:ifstream读取到文件尾部之后,再重新seek到开头,接下来读取文件内容会失败。
处理方式:读取到文件结尾之后,先用clear清除一下标志位,再开始seek。

7:python3.7调用c++ dll文件失败,找不到模块。
问题原因1:Microsoft Visual C++ 2015 Redistributable未安装。
问题原因2:dllname.dll依赖的其它dll没有加入到环境变量。(这次将VTK相关的dll放置到dllname的相同补录下没有解决问题。os.chdir(“F:\”)也没有解决),将VTK的bin目录加入到环境变量后重启电脑好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值