我在多台计算机(工作/家庭)上使用相同的Visual Studio项目,使用Dropbox在两者之间进行同步。因为VS创建了一些额外的大文件,所以我在上传到Dropbox之前删除了以下内容:
过去一切都运转良好,但现在有些问题已经出现。 我收到以下错误:
Moc'ing CodeInterface.h...
1> The system cannot find the path specified.
1> Moc'ing ThreadWorker.h...
1> The system cannot find the path specified.
1> Rcc'ing StreamAnalyser.qrc...
1> The system cannot find the path specified.
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 3.
所以,我想我可能需要创建一个新的Visual Studio项目并手动导入这些类。所以我的问题是:
谢谢!
答案 0 :(得分:3)
我不熟悉Dropbox,所以我不能说你目前所做的事情
我喜欢做的是使用分布式版本控制系统(我使用git
)来仅管理源代码。我使用.gitignore
文件来不对任何对象代码和visual studio项目文件等进行版本控制。然后我可以轻松地将这些项目(及其版本控制)克隆到我喜欢的任何计算机上 - 包括我在笔记本电脑上回家时可能闲置的测试分支。
根据我的经验,视觉工作室项目文件很痛苦,因为不同的版本不能很好地兼容彼此(1台计算机有vs2005,另一台有vs2008)。为了克服这个问题,我喜欢使用cmake
作为我的构建系统(我也将它们包含在我的git存储库中)。 Cmake是一个'元构建系统',因为它为你生成visual studio,eclipse或者autotools make文件,然后你在VS或Eclipse或make中进行本机构建。
将这两个软件包结合使用意味着您可以在任何计算机(包括Linux,Mac和Windows)之间复制正确版本控制的源代码,然后使用您在该计算机上安装的任何IDE在该计算机上本机构建源代码。
答案 1 :(得分:3)
“moc”是预处理.h
文件的Qt可执行文件。它由MSVS构建系统调用。但是,如果它丢失了,你会得到“系统无法找到指定的路径”。 “Moc'ing CodeInterface.h”之后的错误。
因此,我认为MSVS无法找到您的Qt实施。我并不完全惊讶;当我最近尝试安装时,Qt4构建系统及其与MSVS的集成并没有让我觉得非常强大。
答案 2 :(得分:1)
答案 3 :(得分:1)
在您的情况下,您可以删除文件但不删除目录,即GeneratedFiles\Debug
和\Release
应保留。如果您查看您的h文件,他们会将mocing和uic-ing视为自定义构建步骤,并且该事件中没有路径检查代码。
"$(QTDIR)\bin\moc.exe" -DQT_NO_QT_INCLUDE_WARN -DUNICODE -DWIN32 -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DQT_NETWORK_LIB -DJSBRIDGEAPI_LIB -D_WINDLL -I".\GeneratedFiles\." -I"$(QTDIR)\include\." -I".\GeneratedFiles\$(ConfigurationName)\." -I".\." -I"$(QTDIR)\include\QtCore\." -I"$(QTDIR)\include\QtNetwork\." -I"$(QTDIR)\include\QtWebKit\." ".\apisignalemitter.h" -o ".\GeneratedFiles\$(ConfigurationName)\moc_apisignalemitter.cpp"
所以 - 添加dirs .\GeneratedFiles\$(ConfigurationName)\
可能会解决您的问题。
另外,检查是否定义了$(QTDIR)。
UPD - 确保在某个地方的两台机器上都安装了QT
答案 4 :(得分:0)
我通常使用SVN进行版本控制,使用qmake pro文件进行项目设置。您可以使用qmake从专业文件创建Visual Studio项目文件并使用Visual Studio,或在Windows,Linux和Mac上创建Makefile和其他项目文件,因此它是一个非常便携的解决方案。