gpt4 book ai didi

c++ - 从主目录执行时,在 Ubuntu 16.04 的 usr/local/bin 中安装的 C++ 应用程序无法正确运行

转载 作者:行者123 更新时间:2023-11-28 05:07:43 24 4
gpt4 key购买 nike

我用 C++ 程序创建了一个 deb 包。我遵循了这个简单的指南 https://ubuntuforums.org/showthread.php?t=910717 .我在 usr/local/bin 成功安装了 deb。
但是我面临以下问题。当我从主目录运行我的应用程序时,c++ 主程序启动,但当它到达需要从设置文件读取的位置时,它就好像它不存在一样。此文件位于与 c++ 可执行文件位于同一位置的文件夹中。
另一方面,当我转到 -> usr/local/bin 并从那里运行我的 C++ 应用程序时,不存在任何问题。我还授予了所有文件的读写和执行权限。因为/usr/local/bin 已经存在于我的路径中,为什么会出现这个错误?

最佳答案

因为应用程序将当前路径作为您的路径,而不是它的安装位置。你需要弄清楚正确加载文件的应用程序路径 - 如果你使用 Qt 你有 applicationPath,如果没有你必须:

char szTmp[32];
sprintf(szTmp, "/proc/%d/exe", getpid());
int bytes = MIN(readlink(szTmp, pBuf, len), len - 1);
if(bytes >= 0)
pBuf[bytes] = '\0';
return bytes;

确定应用安装文件夹并据此加载文件。

关于c++ - 从主目录执行时,在 Ubuntu 16.04 的 usr/local/bin 中安装的 C++ 应用程序无法正确运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com