Unresolved external symbol - Kinect Lirary

Creedzy
Wed, 05 Nov 2014 16:58:12 +0000
Community & Industry Discussion

Hi guys,
Im trying to make a plugin for Kinect 1.8, and I am currently trying to load the kinect library, but I ran into some issues that I cant resolve for 2 days now. I am getting this error and i have no clue what it means:

1>LINK : warning LNK4001: no object files specified; libraries used
1>LINK : error LNK2001: unresolved external symbol _DllMainCRTStartup
1>C:\Users\nas\Documents\Unreal Projects\Kinect1\Plugins\Kinect2\Binaries\Win64\UE4Editor-Kinect2.dll : fatal error LNK1120: 1 unresolved externals

This is my build file:

using System.IO;
namespace UnrealBuildTool.Rules
{
	public class Kinect2 : ModuleRules
	{
        public Kinect2(TargetInfo Target)
		{
			PublicIncludePaths.AddRange(
				new string[] {
					"Kinect2/Public",
                    "Kinect2/Classes"

                    // ... add public include paths required here ...
				}
				);

			PrivateIncludePaths.AddRange(
				new string[] {
					"Kinect2/Private",

					// ... add other private include paths required here ...
				}
				);

			PublicDependencyModuleNames.AddRange(
				new string[]
				{
					"Core",
                    "CoreUObject",
                    "Engine",
                    "Slate",
                    "InputDevice",
                    "InputCore",
                     "Kinect2"

					// ... add other public dependencies that you statically link with here ...
				}
				);

			PrivateDependencyModuleNames.AddRange(
				new string[]
				{
                    "Core",
                    "CoreUObject",
                    "Engine"
					// ... add private dependencies that you statically link with here ...
				}
				);

			DynamicallyLoadedModuleNames.AddRange(
				new string[]
				{
                    "Kinect2"
					// ... add any modules that your module loads dynamically here ...
				}
				);
            LoadLibrary(Target);

		}
        public bool LoadLibrary(TargetInfo Target)
        {
            Type = ModuleType.External;
            bool isLibrarySupported = false;

            string ModulePath = Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name));
            string LibraryPath = Path.Combine(ModulePath, "ThirdParty", "KinectLib");

            string ArchitecturePath = "";

            if (Target.Platform == UnrealTargetPlatform.Win64 &&
                WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2013)
            {
                ArchitecturePath = "amd64";

                isLibrarySupported = true;
            }
            else if (Target.Platform == UnrealTargetPlatform.Win32 &&
              WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2013)
            {

                ArchitecturePath = "x86";

                isLibrarySupported = true;
            }

            if (isLibrarySupported==true)
            {
                // Add the architecture spacific path to the library files
                PublicAdditionalLibraries.Add(Path.Combine(LibraryPath, "lib", ArchitecturePath, "Kinect10.lib"));
                // Add a more generic path to the include header files
                PublicIncludePaths.Add(Path.Combine(LibraryPath, "inc"));
            }

            Definitions.Add(string.Format("WITH_KinectLib_BINDING={0}", isLibrarySupported ? 1 : 0));

            return isLibrarySupported;

        }
	}
}

Im not quite sure what else to include, so if you require something else, I will put it down.

2 posts - 2 participants