c++代码段中导入FileMediaSource.h头文件失败

我的ue工程是蓝图工程,但是构建了cpp的环境,
我创建了一个cpp的文件,我想写一些蓝图节点,当我导入ue Editor中的FileMediaSource.h头文件的时候,他就会报错C1083
大概意义是导入的这个头文件中,这个头文件里面写的头文件导入的时候出现了问题(他根据找不到目标头文件),但是这个头文件是"只读"权限,我不太敢去改动ue自身的代码,
而且即使我改了这个头文件的描述,使得工程找到这个头文件之后,他也会找不到MediaSource.generated.h这个头文件(我搜路径的时候,看到这个头文件有多个路径,看起来应该是虚幻跨平台打包工程之后调用的不同的路径)

要在你的项目或者你的插件的.build.cs里引用这个头文件所在的模块

             PrivateDependencyModuleNames.AddRange(
			new string[]
			{
                                 "MediaAssets",
			}
			);

然后在你要用这个头文件的地方#include "FileMediaSource.h"

1 Like

大佬,按照你的方式,我已经在工程的bulid.cs里面引用了所在的模块,
(避免之前工程的头文件影响,我创建了一个新的头文件以及cpp使用本次代码,
但当我导入这个头文件之后,仍会有报错,就是以下的图,
我查了很多资料仍没有很有效…解决这个问题…(捂脸

按住ctrl之后鼠标左键点击头文件能跳转了吗?

贴一下你的代码,你用错了函数吧?

不要看VS的错误列表,没有实际意义。要看输出列表ctrl+alt+o,你这几个报错最常见的问题是某行代码没打分号。

1 Like

是的,能直接跳转到目标的头文件.
大佬,实际上我是在编译通过之后(可以运行后),加入了这句头文件,然后重新生成解决方案就报了这样的错误,(其实我压根没写什么多余任何的代码…试了很多次都是这样…),他报错的内容都是ue自身库的东西,让我挺困扰的本因…

我仅仅注释了这个头文件,他就编译成功,取消注释后编译,就是之前那个图片报错的内容,
按照大佬你的思路来说,(应该)是MediaSource.h头文件的分号的问题(但是这是虚幻的代码)
只读权限,我并没有进行修改…所以…唔

这不应当出现,我测试了能生成成功。

确保以下三点:
1、VS是2022,5.1最低要求就是VS2022;
2、你的.build.cs正确依赖了 "MediaAssets",模块;
3、包含头文件#include "FileMediaSource.h"

++更新一点,在你添加了依赖模块以后,关掉VS,右键你的工程.uproject
Snipaste_2023-08-01_15-50-42
生成一下VS工程文件。

1 Like

可能确实是这个问题,我将.vs文件删除后,用Generate VS project files 就成功了, 感谢大佬!

另,我还有个疑问就是,ue工程的模块是怎么分的,我怎么知道哪些是需要导入模块呢?
(似乎我在ue的文档里并没有看到很明确的说明,可以解惑一下吗?甩个相关说明的连接也可以…
ps:感觉是我检索的问题,也可能我没找对关键字

1 Like

再次感谢大佬,本问题已经解决,话题终结,以上

Hi there @i12cu84,

This topic has been moved from International to Programming & Scripting: C++.

When posting, please review the categories to ensure your topic is posted in the most relevant space.

Thanks and happy developing!

Received,
this is my first post,
please understand,
follow-up attention

1 Like