Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos qt程序部署在mac上。启动独立应用程序时未写入配置文件,从qt creator内运行时有效_Macos_Qt_Deployment_Config_Logfile - Fatal编程技术网

Macos qt程序部署在mac上。启动独立应用程序时未写入配置文件,从qt creator内运行时有效

Macos qt程序部署在mac上。启动独立应用程序时未写入配置文件,从qt creator内运行时有效,macos,qt,deployment,config,logfile,Macos,Qt,Deployment,Config,Logfile,我有一个为MacOSX开发的程序。当程序从Qt creator中运行时,会在myapp.app/Contents/MacOS文件夹中创建一个日志文件和一个config.cfg文件,与可执行文件一起。这是正确的行为,程序需要这些文件 当我将应用程序部署为独立运行时(通过使用macdeploymentqt工具链接所需的库),应用程序将启动并正确运行,但是日志和config.cfg文件不会写入myapp.app/Contents/MacOS文件夹,因此无法读取设置 有什么办法可以解决这个问题吗?以前有

我有一个为MacOSX开发的程序。当程序从Qt creator中运行时,会在myapp.app/Contents/MacOS文件夹中创建一个日志文件和一个config.cfg文件,与可执行文件一起。这是正确的行为,程序需要这些文件

当我将应用程序部署为独立运行时(通过使用macdeploymentqt工具链接所需的库),应用程序将启动并正确运行,但是日志和config.cfg文件不会写入myapp.app/Contents/MacOS文件夹,因此无法读取设置

有什么办法可以解决这个问题吗?以前有人遇到过这种情况吗


Mitch

osx可能不允许您在已安装的应用程序上写入捆绑包位置,这是出于安全原因,并且在多个用户使用您的应用程序时可能会发生冲突

要实现跨平台,您可以改为编写:

QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)
决定

~/Library/Application Support/<APPNAME>
~/Library/应用程序支持/

C:/Users//AppData/Local/

或windows上的等效程序。

出于安全原因,以及多个用户使用您的应用程序时可能会发生冲突,osx可能不允许您在已安装的应用程序上写入捆绑包位置

要实现跨平台,您可以改为编写:

QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)
决定

~/Library/Application Support/<APPNAME>
~/Library/应用程序支持/

C:/Users//AppData/Local/

或windows上的等效程序。

无论是在Mac还是windows上,您都不应该写入应用程序包。即使在Windows上,如果您的用户不是管理员,它也无法工作。这个想法最后在Windows95上有意义,甚至在WindowsNT上也没有意义。不要这样做。

无论是在Mac还是Windows上,您都不应该写入应用程序包。即使在Windows上,如果您的用户不是管理员,它也无法工作。这个想法最后在Windows95上有意义,甚至在WindowsNT上也没有意义。不要这样做。

你确定这就是你想要的吗?不鼓励写入您自己的应用程序包,系统可能会阻止写入。此程序也在windows上运行,在windows上实现时,config.cfg会写入包含可执行文件和所需的.dll文件的文件夹。在为mac编译时,会有一个等价的吗?你确定这就是你想要的吗?不鼓励写入您自己的应用程序包,系统可能会阻止写入。此程序也在windows上运行,在windows上实现时,config.cfg会写入包含可执行文件和所需的.dll文件的文件夹。在为mac编译时会有一个等价的吗?谢谢!我已经看了QStandardPath的文档,但对实现仍然有点困惑。我想使用DocumentsLocation文件夹(按原样需要是用户易于访问的文件夹)。当我尝试类似于currentPath=QStandardPath::DocumentsLocation+“/MP512”的操作时,我想在documents文件夹中创建一个文件夹;路径变成只有MP512,有什么想法吗?我已经让它工作了一些。通过使用QString path=QStandardPath::writableLocation(QStandardPath::AppLocalDataLocation);currentPath=path+“/MP512”;它将返回正确的目录,但未创建文件夹。当程序在那里写文件时,它会自动创建吗?谢谢!我已经看了QStandardPath的文档,但对实现仍然有点困惑。我想使用DocumentsLocation文件夹(按原样需要是用户易于访问的文件夹)。当我尝试类似于currentPath=QStandardPath::DocumentsLocation+“/MP512”的操作时,我想在documents文件夹中创建一个文件夹;路径变成只有MP512,有什么想法吗?我已经让它工作了一些。通过使用QString path=QStandardPath::writableLocation(QStandardPath::AppLocalDataLocation);currentPath=path+“/MP512”;它将返回正确的目录,但未创建文件夹。当程序在那里写入文件时,它会自动创建吗?