How to link *.dll about third party library?

I try to add OpenCV to ue4 third party.

this is my build file


using UnrealBuildTool;

public class OpenCV : ModuleRules
{
	public OpenCV(TargetInfo Target)
	{
		Type = ModuleType.External;

		string OpenCVPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "OpenCV";
		PublicIncludePaths.Add(OpenCVPath + "/inc");
		
		if (Target.Platform == UnrealTargetPlatform.Win64)
		{
			string LibPath = OpenCVPath + "/lib/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName();
			PublicLibraryPaths.Add(LibPath);
			bool isdebug = Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT;

			//if (!isdebug)
			{				
				PublicAdditionalLibraries.Add("opencv_calib3d2411.lib");
				PublicAdditionalLibraries.Add("opencv_contrib2411.lib");
				PublicAdditionalLibraries.Add("opencv_core2411.lib");
				PublicAdditionalLibraries.Add("opencv_features2d2411.lib");
				PublicAdditionalLibraries.Add("opencv_flann2411.lib");
				PublicAdditionalLibraries.Add("opencv_gpu2411.lib");
				PublicAdditionalLibraries.Add("opencv_highgui2411.lib");
				PublicAdditionalLibraries.Add("opencv_imgproc2411.lib");
				PublicAdditionalLibraries.Add("opencv_legacy2411.lib");
				PublicAdditionalLibraries.Add("opencv_ml2411.lib");
				PublicAdditionalLibraries.Add("opencv_nonfree2411.lib");
				PublicAdditionalLibraries.Add("opencv_objdetect2411.lib");
				PublicAdditionalLibraries.Add("opencv_ocl2411.lib");
				PublicAdditionalLibraries.Add("opencv_photo2411.lib");
				PublicAdditionalLibraries.Add("opencv_stitching2411.lib");
				PublicAdditionalLibraries.Add("opencv_superres2411.lib");
				PublicAdditionalLibraries.Add("opencv_ts2411.lib");
				PublicAdditionalLibraries.Add("opencv_video2411.lib");
				PublicAdditionalLibraries.Add("opencv_videostab2411.lib");
				PublicDelayLoadDLLs.Add("opencv_calib3d2411.dll");
				PublicDelayLoadDLLs.Add("opencv_contrib2411.dll");
				PublicDelayLoadDLLs.Add("opencv_core2411.dll");
				PublicDelayLoadDLLs.Add("opencv_features2d2411.dll");
				PublicDelayLoadDLLs.Add("opencv_flann2411.dll");
				PublicDelayLoadDLLs.Add("opencv_gpu2411.dll");
				PublicDelayLoadDLLs.Add("opencv_highgui2411.dll");
				PublicDelayLoadDLLs.Add("opencv_imgproc2411.dll");
				PublicDelayLoadDLLs.Add("opencv_legacy2411.dll");
				PublicDelayLoadDLLs.Add("opencv_ml2411.dll");
				PublicDelayLoadDLLs.Add("opencv_nonfree2411.dll");
				PublicDelayLoadDLLs.Add("opencv_objdetect2411.dll");
				PublicDelayLoadDLLs.Add("opencv_ocl2411.dll");
				PublicDelayLoadDLLs.Add("opencv_photo2411.dll");
				PublicDelayLoadDLLs.Add("opencv_stitching2411.dll");
				PublicDelayLoadDLLs.Add("opencv_superres2411.dll");
				PublicDelayLoadDLLs.Add("opencv_ts2411.dll");
				PublicDelayLoadDLLs.Add("opencv_video2411.dll");
				PublicDelayLoadDLLs.Add("opencv_videostab2411.dll");
			}
// 			else
// 			{
// 				PublicAdditionalLibraries.Add("opencv_calib3d2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_contrib2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_core2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_features2d2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_flann2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_gpu2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_highgui2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_imgproc2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_legacy2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_ml2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_nonfree2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_objdetect2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_ocl2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_photo2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_stitching2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_superres2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_ts2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_video2411d.lib");
// 				PublicAdditionalLibraries.Add("opencv_videostab2411d.lib");
// 				PublicDelayLoadDLLs.Add("opencv_calib3d2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_contrib2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_core2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_features2d2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_flann2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_gpu2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_highgui2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_imgproc2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_legacy2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_ml2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_nonfree2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_objdetect2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_ocl2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_photo2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_stitching2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_superres2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_ts2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_video2411d.dll");
// 				PublicDelayLoadDLLs.Add("opencv_videostab2411d.dll");
// 			}
		}
		else
		{
			string Err = string.Format("{0} dedicated server is made to depend on {1}. We want to avoid this, please correct module dependencies.", Target.Platform.ToString(), this.ToString());
			System.Console.WriteLine(Err);
			throw new BuildException(Err);
		}
	}
}

Engine\Binaries\ThirdParty\OpenCV\Win64\VS2013 has *.dll

Engine\Source\ThirdParty\OpenCV\lib\Win64\VS2013 has .dll and .lib

but why ue4 always forgets loading the dll?

What Should I do?

I compiled finish
linked is ok
just runtime error

I think you need to put them into
\Binaries\Win32
\Binaries\Win64

as well, but I’m not sure :slight_smile: