module.build.cs文件常见字段
string path = Path.Combile(p1, p2, p3);
string absolutePath = Path.GetFullPath(path);
string absolutePath = Path.GetFullPath(path);
//https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ThirdPartyLibraries/
RuntimeDependencies.Add(Path.GetFullPath(absolutePath), StagedFileType.NonUFS);
RuntimeDependencies.Add(Path.GetFullPath(absolutePath), StagedFileType.NonUFS);
Public/PrivateDependencyModuleNames属于静态链接,通常其Public/PrivateIncludePaths会自行处理正确。
Public/PrivateIncludePathModuleNames与DynamicallyLoadedModuleNames配合属于动态链接,因此如果你使用了非抽象函数,则会提示无法找到链接符号。这一对配置的典型用法参考 #474,一般就是LoadModuleChecked,然后调用接口的抽象函数。
Public/PrivateIncludePathModuleNames与DynamicallyLoadedModuleNames配合属于动态链接,因此如果你使用了非抽象函数,则会提示无法找到链接符号。这一对配置的典型用法参考 #474,一般就是LoadModuleChecked,然后调用接口的抽象函数。
关于PublicSystemLibraryPaths,PublicAdditionalLibraries,PublicLibraryPaths的问题
在(<)UE4.24的版本中,指定lib文件的方法跟visual studio里使用的方式一致:
- PublicLibraryPaths用于添加lib文件所在的目录
- PublicAdditionalLibraries用于添加lib文件,不包括路径信息
- 忽略PublicLibraryPaths字段,且PublicAdditionalLibraries字段直接添加lib文件绝对路径。
如果仍坚持老的使用方式,则会报Warning,用以下方式可以消除这个Warning,但并不能消除老的方式的效率低下的问题:
- 用PublicSystemLibraryPaths取代PublicLibraryPaths,用于添加lib文件所在的目录
- 用PublicSystemLibraries来添加库文件,但只需要库的名字即可,不需要后缀。或者直接在cpp中用#pragma comment(lib,"avcodec.lib")这种写法,会从PublicSystemLibraryPaths指定的目录下去寻找