【发布时间】:2018-09-26 08:17:52
【问题描述】:
我编写了一个 C++ 软件,它需要从它所在的文件夹中读取文件,而不是在同一文件夹中写入其他文件。
目前我通过 shell 导航到复制可执行文件的文件夹,然后使用./executable_name 启动它。
我想通过双击来执行它。如果我这样做软件告诉我它找不到输入文件,那么它就像它没有在好文件夹中执行一样。
在我看来有两种方法: 1)继续复制工作文件夹中的可执行文件并告诉它在此文件夹中查找文件。 2) 创建一个 bash 脚本,调用给定文件夹(如应用程序)中的可执行文件,并将此脚本复制到工作文件夹中。然后告诉脚本执行软件,就像它在工作文件夹中一样。 3) 你可能有更好的想法
无论如何我都不知道该怎么做。
有人可以帮帮我吗?
非常感谢!!
【问题讨论】:
-
我猜你的应用没有考虑到
cwd()并且忘记了chdir()到它的预期工作目录。 -
确实如此。你能再解释一下吗?比如……我该怎么做?谢谢
-
首先阅读我提到的两个函数的
man页面。另请阅读:stackoverflow.com/questions/933850/… -
您的应用还不是为 GUI 交互而设计的。很难回答,因为它在很大程度上取决于您要使用的框架。反正有很多这样的问题,比如看unix.stackexchange.com/questions/32797/…
-
你可以让它在启动时打印它当前的工作目录,如果需要的话,你可以使用一些函数来确定它自己的位置。但是如何通过双击linux中的可执行文件来运行呢?
标签: c++ linux macos directory executable