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.