在 Debug 上工作但在 Release 上不起作用的代码
Posted
技术标签:
【中文标题】在 Debug 上工作但在 Release 上不起作用的代码【英文标题】:Code working on Debug but doesn't work on Release 【发布时间】:2020-05-24 14:27:57 【问题描述】:我在 Cpp 上写了这个小代码,使用 Qt 库加载点云资源文件并将其复制到临时目录中,然后使用库 pcl 加载它,代码如下:
QResource::registerResource(qstring_path_to_resource_file);
QTemporaryDir temporaryDir("Dir");
QFile::copy(":/point_cloud/pc.pcd", temporaryDir.path() + "/pc.pcd");
pcl::io::loadPCDFile(QString(temporaryDir.path() + "/pc.pcd").toStdString(), *pointcloud);
当我在调试模式下启动它时它运行良好,但在发布时不起作用。显然,它找不到我复制的临时文件。
感谢您的帮助。
【问题讨论】:
检查您的 IDE 设置以运行您的程序。尤其要检查发布和调试工作目录之间的差异。 检查copy()和errorString()的返回值(使用copy()的非静态版本) 只是另一个问题,您是否在调试和发布模式下都构建了库? @Someprogrammerdude 我确实检查过,它是同一个目录 @Salvo 是的,我确实为调试和发布构建了 【参考方案1】:我遇到了同样的问题,问题是资源文件 (.rcc) 没有正确创建。尝试重新创建您的 .rcc 文件并再次检查
【讨论】:
以上是关于在 Debug 上工作但在 Release 上不起作用的代码的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?
python - http.server在windows上工作,但在debian上不起作用
在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用