我有一些项目,我暂时没有在特定的计算机上编译,虽然它们在其他项目上编译得很好 - 相同的项目,而不是副本。我正在编译来自同一网络目录的代码。正如我所说,在某些计算机上,它运行正常。
然而,在我办公室的计算机上,visual studio似乎已经失去了对目录结构的所有感觉。
首先我遇到了moc(这些项目使用Qt)找到mainwindow.h文件的问题。它与.sln,.vproj等在同一目录中。我在这里发布了一个关于此信息的问题: visual studio 2008 moc cant find mainwindow.h
通过删除mainwindow.h并将其重新加载到项目中,moc和visual studio能够看到它。
现在moc可以找到mainwindow.h,但是uic找不到mainwindow.ui - 这一点真的不足为奇。这是我从visual studio得到的错误:
1>UIC mainwindow.ui
1>The system cannot find the path specified.
1>File 'mainwindow.ui' is not valid
1>Project : error PRJ0019: A tool returned an error code from "UIC mainwindow.ui"
,这是构建日志中的违规行
C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\bin\uic.exe mainwindow.ui -o ui_mainwindow.h
现在,如果我进入包含解决方案的目录,我可以在上面运行这一行,它会很好地生成ui_mainwindow.h。
我在这里不知所措。显然文件和权限都很好,因为我可以编译它们(虽然不是从我的本地Visual Studio副本)。显然.vcproj文件是正确的,因为我可以在其他机器上编译。似乎有一些关于路径的全局调整,我不知何故无意中对我的视觉工作室副本做了什么。
此外,我重新安装它并且相同的行为仍然存在。我想如果在Windows文件结构中有一些违规的配置文件,这会清理它,但显然不是。
在此设置确实有效的计算机上,我将其作为第一个输出:
1>UIC mainwindow.ui
1>Z:\dmedine\git-lsl-tst-wrkng\labstreaminglayer\Apps\XDFBrowser>doskey python26="C:\python26\python"
1>MOC mainwindow.h
1>Z:\dmedine\git-lsl-tst-wrkng\labstreaminglayer\Apps\XDFBrowser>doskey python26="C:\python26\python"
我对这些doskey命令感到有些困惑(我没有创建这些项目,所以有很多东西要被混淆)。 moc和uic在Windows上需要python吗?最近我确实玩过关于python的doskey,所以也许这是问题的根源,但我想知道原因。
答案 0 :(得分:0)
正如我所怀疑的,我在注册表中添加了一些用于调用不同版本python的别名的密钥确实是罪魁祸首。这是该文件(万一有人好奇):
doskey ls=dir $*
doskey python27-64=C:\Python27-64\python.exe $*
doskey python35-32=C:\python35-32\python.exe $*
显然(我只是在检查工作设置并注意到doskey行时注意到这一点)这些doskey调用会破坏Windows上的moc / ui进程。
这没有任何意义。此外,它非常不方便,因为现在我必须非常努力地调用不同版本的python。