在 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上不起作用

上传文件(图像)在实时服务器上不起作用,但在dev上工作

在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用

带有 p8 文件的 Apple 推送通知在我的 Mac 上工作,但在 Linux 服务器上不起作用

Heroku postgresql 查询在 Heroku 上不起作用,但在本地工作