gpt4 book ai didi

c - 链接二进制文件以从其原始目录执行

转载 作者:行者123 更新时间:2023-11-30 14:41:11 25 4
gpt4 key购买 nike

我有一个用C编写的程序,它的目录结构是这样的:

root/
program.sh
textures/
texture1.png

program.sh 以如下方式导入纹理:load_textures("./textures/texture1.png")(相对路径)。因此,该程序仅在我从 root 目录执行 program.sh 时才起作用。

我想创建一个指向 program.sh 的链接,这样每当我执行该链接时,我就能够从根目录执行 program.sh。换句话说,我想从根目录外部执行program.sh

现在,我希望有一个解决方案可以在不更改源代码的情况下执行此操作(如果有办法的话),否则,在当前情况下,您会如何建议我在 C 中打开文件/纹理?

有类似的问题here ,但没有答案。

最佳答案

从评论中可以清楚地看出,目标是从不同的目录执行程序,但程序的当前工作目录指向其自己的目录。

虽然这可以用 C 语言完成(在 POSIX 系统中,由于 .sh 扩展而假定,通过 chdir 的组合来完成) code> 和 execvp 系统调用),在包装 shell 脚本中更容易实现,如下所示:

#!/bin/sh

pushd /path/to/executable
./program.sh $@
popd

关于c - 链接二进制文件以从其原始目录执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085288/

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