【发布时间】:2022-11-10 16:16:01
【问题描述】:
我正在制作一个严重依赖于另一个 C 二进制文件的程序。由于我不想学习如何使用标头以及尚未学习的内容,因此我想采用简单的方法,只需从我的 cpp 程序中的同一文件夹中运行预编译的二进制文件。
现在,我的文件夹是这样设置的:它有main.cpp、CMakeLists.txt 和ibootim 二进制文件。在main.cpp 内部,我怎么称呼ibootim?
从 python 编码中,它告诉我我应该能够运行
system("./ibootim");
但这不起作用。终端告诉我没有找到文件。显然,如果我将整个路径放入该二进制文件,它将起作用。但是,如果其他用户要下载此文件,则对他们不起作用,因为他们没有与我相同的计算机、用户名等。
所以我的第一个问题,我主要关心的是:
如何在 c++ 程序中运行位于同一目录中的另一个二进制文件?
如果由于某种原因这不可能,那么我可以尝试从源代码下载 ibootim 并可能使用头文件:
如何在 C++ 程序中从 C 头文件执行代码?
【问题讨论】:
-
system()应该可以工作。也许您的工作目录与应用程序目录不匹配? -
@HolyBlackCat 我刚刚意识到为什么它不起作用。这是因为我将二进制文件构建在与 ibootim 二进制文件不同的目录中。我可能只是白白发了这个帖子……
-
ibootim是什么,它来自哪里? -
@tadman ibootim 是一个用 C 语言编写的程序,它允许用户将 png 转换为 iBoot 图像。这在 iPhone 上用于人们在启动之前将自定义图片发送到 iPhone。许多其他脚本,通常 SSH 脚本使用这种思想来设置自定义启动徽标。您可以在 GitHub 上找到原始来源:github.com/realnp/ibootim
-
@Scheff'sCat 不。我不再那样做了。我正在做 tadman 建议我做的事情。