C++ 应用程序认为是';在我的主文件夹OSX中
我在Windows和OSX下使用eclipse和c++11进行编译。当我创建一个发布并将其拖到另一个文件夹时,Windows二进制文件具有当前工作目录。OSX版本认为它在我的主文件夹中。无论我把它放在哪里,它都认为它正在我的主目录中运行 我在代码中添加了一条打印语句来证明: 当前工作目录:/Users/Dom 只有双击二进制文件时,才会出现此问题。如果我打开一个终端并使用./运行程序,它将在正确的目录中打开 我不确定如何解决这个问题,但需要解决这个问题,以便应用程序找到相对路径特定的资源 谢谢 解决方案:C++ 应用程序认为是';在我的主文件夹OSX中,c++,c,macos,C++,C,Macos,我在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
。[在这些平台上]的所有进程都有一个当前目录的概念,该目录不能保证是程序的目录。您可能需要以其他方式查找二进制文件,例如以下方式之一: