使用 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}"
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)