CÃlimos 2023-11-07 09:41 采纳率: 65.5%
浏览 14
已结题

qt打包时,程序里调用的外部文件放在哪

Windows下qt creator把程序打包成exe后发给用户后发现运行报错,发现是代码里

 ReadOcrClassMlp("Industrial_0-9A-Z_NoRej.omc", &hv_OCRHandle);

这句中调用了一个外部文件Industrial_0-9A-Z_NoRej.omc没有打包进去,但在打包文件夹下加了这个文件也运行报错,

img

请问这个路径应该怎么加?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-07 12:10
    关注

    【以下回答由 GPT 生成】

    问题解答:

    在Qt中,可以使用QCoreApplication::applicationDirPath()函数来获取可执行文件所在的路径,然后根据该路径来定位外部文件。

    具体的解决步骤如下:

    1. 将外部文件放置在与可执行文件相同的目录下,例如放置在打包后的exe文件所在目录下。

    2. 使用QCoreApplication::applicationDirPath()函数获取可执行文件所在目录的路径。

    3. 使用路径拼接函数QDir::filePath()拼接外部文件的路径。

    4. 将拼接后的路径作为参数传递给调用外部文件的代码。

    下面是示例代码:

    #include <QCoreApplication>
    #include <QDir>
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        // 获取可执行文件所在目录的路径
        QString executablePath = QCoreApplication::applicationDirPath();
    
        // 使用路径拼接函数拼接外部文件的路径
        QString externalFilePath = QDir::cleanPath(executablePath + QDir::separator() + "Industrial_0-9A-Z_NoRej.omc");
    
        // 调用外部文件的代码
        ReadOcrClassMlp(externalFilePath.toStdString().c_str(), &hv_OCRHandle);
    
        return a.exec();
    }
    

    将上述代码中的ReadOcrClassMlp()hv_OCRHandle替换为你实际使用的函数和变量名。

    通过以上步骤,你可以正确添加外部文件的路径,使程序在运行时能够找到该文件。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22
  • ¥15 R语言中lasso回归报错