应用程序认为它在我的主文件夹 OSX 中
Application thinks it's in my home folder OSX
我在Windows和OSX下都使用eclipse和c++11进行编译。当我创建一个版本并将其拖动到另一个文件夹时,Windows二进制文件具有当前的工作目录。OSX版本认为它在我的主文件夹中。无论我把它放在哪里,它都认为它在我的主目录中运行。
我在代码中放了一个打印声明来证明这一点:当前工作目录:/Users/Dom
只有双击二进制文件时才会出现此问题。如果我打开一个终端并使用运行程序。/它在正确的目录中打开。
我不知道如何解决这个问题,但为了让应用程序找到相对的路径特定的资源,需要解决这个问题。
谢谢!
解决方案:
char path[1024];
uint32_t size = sizeof(path);
if (_NSGetExecutablePath(path, &size) == 0){ /*...*/ }
如果您被UAC提升,它也不会在Windows下工作,因为在提升过程中,当前目录会重置为%WINDIR%system32
。[在这些平台上]的所有进程都有一个当前目录的概念,该目录不能保证是程序的目录。您可能需要以另一种方式找到二进制文件,例如以下方式之一:https://stackoverflow.com/a/1024937/2101267
相关文章:
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何使用命令提示符、记事本和 MinGW 使用主文件、头文件和实现文件编译C++程序?
- 如何在其他文件中使用主文件的场景对象
- 尝试在 ahead 文件上使用结构,并将其包含在主文件和类文件中
- 将函数及其实现移动到与主文件不同的文件(.hpp 和 .cpp)时,性能会受到很大影响
- 编译几个源文件(主文件和头文件)并在ROOT CINT中链接它们
- Xcode 不会检测包含文件中的主文件中包含的文件
- Windows 7:MFC ActiveX 控件不会在任何文件夹中创建文件
- 从一个文件夹中加载文件并保存到另一个文件夹
- 文件移动 - 操作系统如何知道是更新主文件表还是复制和删除
- 无法从头文件C++从主文件访问函数
- 在 Mingw 主文件夹之外构建和编译文件
- 如何将主文件分成三个文件:头文件、客户端和实现
- NDK主文件夹中的目录与NDK版本有什么关系?
- 应用程序认为它在我的主文件夹 OSX 中
- 如何在“选择文件夹”对话框中为静态控件的背景着色
- 验证函数中的文件并在主文件中调用它,输出"file is valid"它是否有效