qt - 使用 premake 在 Visual Studio 中为 QT 生成/使用 moc 文件的问题
问题描述
我开始了一个Qt
项目,我决定用它premake + conan
来获得必要的东西。为了创建个人插槽,我必须Q_OBJECT
在我的头文件中添加。我唯一的问题是创建moc
文件。
我使用 github Addon来简化该Qt
部分,除了在编译时,它给了我一个moc_Window.args
文件,在 Visual Studio 中,当我启动解决方案时,它说我有一个文件应该与文件moc_Window.cpp
位于同一位置.args
. 但是当我尝试通过解决方案打开它时,它自然找不到,因此无法编译。
所以我的问题如下,这个.args
文件的创建是一种常见的行为吗?我必须把它放在一个特定的文件夹中吗?为什么解决方案说我在解决方案中有一个moc
文件,但文件夹中没有出现?
在编译时我有这个错误
Moc'ing Window.h 找不到访问路径。
这是我的premake.lua
include "build/conanbuildinfo.premake.lua"
include "premake-qt/qt.lua"
local qt = premake.extensions.qt
workspace "TileEditor"
conan_basic_setup()
configurations
{
"Debug",
"Release",
"Dist"
}
outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
project "TileEditor"
location "TileEditor"
kind "ConsoleApp"
language "C++"
qt.enable()
qtpath("../build")
qtincludepath("../build/include")
qtlibpath("../build/lib")
qtbinpath("../build/bin")
qtprefix "Qt6"
qtmodules {"core", "gui", "opengl", "widgets"}
qtgenerateddir "src/include/window"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-obj/" .. outputdir .. "/%{prj.name}")
linkoptions { conan_exelinkflags }
files
{
"**.h", "**.cpp"
}
configuration "windows"
cppdialect "C++17"
postbuildcommands {
"{COPY} ../build/bin/Qt6Core.dll %{cfg.targetdir}",
"{COPY} ../build/bin/Qt6Gui.dll %{cfg.targetdir}",
"{COPY} ../build/bin/Qt6Widgets.dll %{cfg.targetdir}",
"{COPYDIR} ../build/bin/ %{cfg.targetdir}"
}
解决方案
推荐阅读
- python - 以事后模式启动 pdb。避免输入“c”的任何技巧
- flutter - 部署到 Web 服务器时不显示 Flutter Web 资产图像
- swift - 参数类型不符合预期类型“WKScriptMessageHandler”
- android - 使用 react-native-firebase 验证电话号码(Otp 验证)
- javascript - 使用 jQuery table-sorter 插件对日期列进行排序的问题
- c# - 在 ASP.Net 中动态取消选中复选框时,CheckBox 不会触发 CheckedChanged 事件
- c# - 为什么通过调用Task.Run和ThreadPool.QueueUserWorkItem排队到ThreadPool时线程数增加了不止一个?
- linux - 使用 DJI OSDK 暂停/恢复航点任务
- python - Plotly:如何将 ticktext 设置为斜体?
- angular - 动态创建的组件添加在页面末尾而不是立即底部