以下是在4.22.3版本中使用结果,版本不同可能会有所差异。
首先对于所有第三方库都应该先加入对头文件目录的包含:
在模块的Build.cs文件中,加入对应的第三方库的头文件包含路径,这样就可以在包含头文件时,找到对应的文件;
PublicIncludePaths.Add(path);//包含目录中的头文件并公开到外部模块
或
PrivateIncludePaths.Add(Path);//包含目录中的头文件并不公开到外部模块,外部模块访问不到头文件
例如:
PublicIncludePaths.Add("$(ModuleDir)/include")
对于插件中的模块:
PublicIncludePaths和PrivateIncludePaths可以接受特殊字符串开头的字符串:
可接受以下特殊字符串有:
$(ModuleDir) 表示模块目录(D:\UE4_Project\testSlate\Plugins\MotionMocap\Source\MotionMocap)
$(PluginDir) 表示插件目录(D:\UE4_Project\testSlate\Plugins\MotionMocap)
$(EngineDir) 表示引擎目录(D:\Program Files (x86)\UE4\UE_4.22\Engine)
$(ProjectDir) 表示工程目录(D:\UE4_Project\testSlate)
不可接受的
$(TargetOutputDir)
$(BinaryOutputDir)
通常用法如下:PublicIncludePaths.Add("$(ModuleDir)/include")
如果path是相对路径,则是从D:\Program Files (x86)\UE4\UE_4.22\Engine\Source,开始的相对路径
对于非插件中的模块:
PublicIncludePaths和PrivateIncludePaths不接受特殊字符串
如果path是相对路径,则是从工程目录的Source开始D:\UE4_Project\testSlate\Source\,开始的相对路径
接下来是库文件的使用:
使用第三方lib和.a文件(也就是当使用静态库时)
首先要包含库的搜索路径(不是必须,为了方便查找库文件):
PublicLibraryPaths.Add(path)
例如:PublicLibraryPaths.Add("$(ModuleDir)/lib")
path对于插件和非插件模块的规则与上面PublicIncludePaths