• 2537阅读
  • 7回复

Qt5 MSVC版本编译的QDir无法定位项目目录,Qt4 mingw可以 [复制链接]

上一主题 下一主题
离线ycyu1455
 

只看楼主 倒序阅读 楼主  发表于: 2018-09-04
QDir pluginsDir("../plugins");
qDebug()<<pluginsDir.canonicalPath();
然后我发现这个QDir是定位到了系统目录,我把plugins复制到C盘才会发现目录,9-4是创建dll插件的,不知道为什么这个无法定位到项目目录,在Qt4的mingw是可以定位到项目目录的
离线ycyu1455

只看该作者 1楼 发表于: 2018-09-04
问题大概找到了,是Qt 5.7.1安装包自带的Qt Creator 4.2.0有问题,换成Qt Creator 4.0.2就没了,QDir使用相对路径会定位到项目目录
离线dbzhang800

只看该作者 2楼 发表于: 2018-09-04
QDir 遇到问题,问题不应该在QtCreator身上。你不妨说一下,你程序运行时的工作目录设置的是什么?
离线ycyu1455

只看该作者 3楼 发表于: 2018-09-08
回 dbzhang800 的帖子
dbzhang800:QDir 遇到问题,问题不应该在QtCreator身上。你不妨说一下,你程序运行时的工作目录设置的是什么? (2018-09-04 09:39) 

D盘的,不管设置在哪个文件夹,都是默认定位C盘(系统盘),不会定位到项目的根目录,我现在换成Qt5.7.0与安装包自带的Qt Creator 4.0.2 就没出现这个问题了,这种怪异的问题,要想查找深层原因,有办法可以找吗,我是瞎撞找到这个大概原因,因为我还安装了Qt Creator 2.8与Qt 4.8,然后在上面试了下,完美定位项目根目录
离线dbzhang800

只看该作者 4楼 发表于: 2018-09-09
这个问题本身很简单,而且和QtCreator也扯不上什么关系。

但是你似乎并不清楚你程序的 ”工作目录“ 你设置的是什么。

注意:这和你提到的 “项目的根目录” 没有任何关系。
离线ycyu1455

只看该作者 5楼 发表于: 2018-09-10
回 dbzhang800 的帖子
dbzhang800:这个问题本身很简单,而且和QtCreator也扯不上什么关系。
但是你似乎并不清楚你程序的 ”工作目录“ 你设置的是什么。
注意:这和你提到的 “项目的根目录” 没有任何关系。 (2018-09-09 20:21)

我这样理解,工作目录是指项目创建时,根目录所在的目录,项目根目录就是项目的第一个文件夹,我使用../plugins意图定位工作目录中一个文件,因为里面有一个dll插件,但是却出错了,因为QDir把项目目录定位到了系统用户文件夹

还有我在构建套件设置的项目目录路径完全无效,不管是设置当前目录,还是详细的目录,QDir都默认定位到C:\Users\xinji\Documents

离线ycyu1455

只看该作者 6楼 发表于: 2018-09-10
我又重新安装回Qt 5.7.1与Qt Creator 4.2.0试了下,结果还是一样,定位到系统用户目录,下面是一些输出信息,还有Qt Creator 版本与Qt Creator 设置
离线dbzhang800

只看该作者 7楼 发表于: 2018-09-10
你查一下:

Projects => Build & Run => Run => Working Directory

另外,代码里面有没有通过Qt的 QDir::setCurrent() 修改工作目录。或者代码中有没有通过C、C++、或系统API修改工作目录。

可以看看:https://blog.csdn.net/dbzhang800/article/details/6363165
快速回复
限100 字节
 
上一个 下一个