我使用 Visual Studio 2015 + Qt VS Tools 扩展开发了一个应用程序。对我来说,这是我第一次在我的项目中使用 Qt(版本 5.14.1)。一切正常,直到发生错误。
我被要求制作我的应用程序的发布版本,它在 Windows 10 和 Windows 7 64 位系统上运行良好。然后我将项目配置设置回 Debug x64 以继续我的工作。我注意到的第一件奇怪的事情——当我在我的解决方案资源管理器中双击 *.ui 表单文件时,Visual Studio 崩溃并重新加载,没有任何错误,Qt 设计器没有启动。
我试过的:
更新:
使用MSVC 2008 SP1和qt-vs-addin-1.1.2
我在MSVC中有一个预先存在的项目,我已经QT'ified:在主要我添加了一个QApplciation,我的窗口现在都是QWidgets.我为.qrc和.ui文件添加了自定义构建步骤,并在任何Q_OBJECT头文件上添加了"moc"作为自定义构建步骤.
所有功能 - 项目构建和运行,XCode上的变体也可以工作.
但是,我的项目仍然与使用Qt向导创建的项目的行为不同: - 即Qt addin不设置QTDIR构建变量.它也没有在项目上下文菜单中提供任何Qt配置选项 - 它们都是灰色的.
我可以通过在我的环境中设置默认的QTDIR来解决QTDIR问题.但是我想解决Qt插件对项目所做的事情 - 关注Qt生成的项目的(xml)vcproj文件与Visual Studio项目没有发现任何Qt-addin正在寻找的明显迹象项目得当.
正如标题所示,Qt Visual Studio外接程序是否支持Visual Studio 2013 Community Edition?也就是说,它可以安装并集成到VS2013社区版中吗?
询问是因为它不支持VS Express,并且Community Edition可能缺少加载项所需的一些功能.
我在Visual Studio中有许多Qt项目,使用的是Qt VS工具提供的新Qt / MsBuild格式。在安装了Qt VS工具的开发环境中进行编译时,一切都可以正常工作(通过IDE和命令行进行编译)。
我们有一台专用于夜间构建的计算机,其中仅编译器和msbuild可用(未安装IDE或Qt VS工具)。
在此类计算机上编译项目时,会出现错误:
QtMsBuild:无法找到qt.targets,qt.props;项目可能无法正确构建。
随后是几行,例如
e:******** \ Preferences.h(4):致命错误C1083:无法打开包含文件:'ui_Preferences.h':没有此类文件或目录
(项目包含Preferences.ui)。
未安装Qt VS Tools时如何解决此类错误?
尝试使用VS-addin for Qt在visual studio中编译我的简单Qt应用程序,我收到以下错误:
1>------ Rebuild All started: Project: XXXXXXXXXXXXX, Configuration: Release Win32 ------
1>Build started 5/05/2012 6:57:33 PM.
1>_PrepareForClean:
1> Deleting file "release\XXXXXXXXXXXXX.lastbuildstate".
1>InitializeBuildStatus:
1> Touching "release\XXXXXXXXXXXXX.unsuccessfulbuild".
1>CustomBuild:
1> MOC XXXXXXXXXXXXXMainWidget.h
1> moc: Too many input files specified
1> Usage: moc [options] <header-file>
1> -o<file> write output to file rather than stdout
1> -I<dir> add dir to the include path for header files
1> -E preprocess only; do not generate meta object code
1> -D<macro>[=<def>] define macro, with optional …Run Code Online (Sandbox Code Playgroud) 我有几个使用 Qt Visual Studio 工具创建的 Visual Studio 项目(在项目创建时总是可用的最新版本,一些可以追溯到支持 Qt 5 的第一个版本,现在是 2.2.1)。所有项目都是用 VS 2010 编译的,尽管 IDE 是 VS 2017(到目前为止是 15.7.4)。
从一段时间开始,一些项目开始报告链接错误,例如
错误 LNK2001:未解析的外部符号“公共:静态结构 QMetaObject const MyQtClass::staticMetaObject”(?staticMetaObject@MyQtClass@@2UQMetaObject@@B)
对于此示例,MyQtClass.h文件声明MyQtClass并具有Q_OBJECT宏。MyQtClass.cpp定义方法。
经过快速检查,我发现问题来自相关的 moc 文件(moc_MyQtClass.cpp如上例)被排除在当前配置的编译之外。这里是 .vcxproj 文件的摘录:
<ClCompile Include="GeneratedFiles\Debug\moc_MyQtClass.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_MyQtClass.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
Run Code Online (Sandbox Code Playgroud)
如果我修改 .vcxproj 文件以从 Debug 配置中删除排除项,则该项目可以正常工作。
该问题仅在与ed 类关联的主.cpp 文件Q_OBJECT被修改时发生(MyQtClass.cpp在我的示例中)。保存此类文件时,会修改 .vcxproj 文件并添加排除项。
这个问题不会出现在我拥有的每个 Qt 项目中,但是一旦它开始,它就会在每次修改关联的 .cpp 文件时不断出现。我一直无法发现它的模式。另外,在公司的几个开发系统中都发生过,所以我的电脑好像不是问题。
我发现的唯一解决方法是丢弃项目文件中的更改,但 …