我目前正在开发一个项目,我想在 Java 中使用 Azure Kinect SDK。据我所知,没有适用于 java 的 Azure Kinect 库。因此,我正在尝试使用 JNI 在 C++ 中的 Azure Kinect 库与 Java 之间建立一座桥梁。
这是我的名为 cCode.cpp 的 C++ 文件:
#include "processingXJava_MyClass.h"
#include <iostream>
#include <D:\Dokumente\Hochschule\Bachelorarbeit\Eclipse\processingXJava\src\microsoft.azure.kinect.sensor.1.4.1\build\native\include\k4a\k4a.h>
using namespace std;
JNIEXPORT void JNICALL Java_processingXJava_MyClass_helloC
(JNIEnv *env, jclass cls){
std::cout << "Hallo Hallo" << std::endl;
uint32_t count = k4a_device_get_installed_count();
k4a_device_t device = NULL;
k4a_device_open(K4A_DEVICE_DEFAULT, &device);
size_t serial_size = 0;
k4a_device_get_serialnum(device, NULL, &serial_size);
char* serial = (char*)(malloc(serial_size));
k4a_device_get_serialnum(device, serial, &serial_size);
cout << serial;
}
我从这个站点获得了 Azure Kinect 包:https ://www.nuget.org/packages/Microsoft.Azure.Kinect.Sensor/
下一步是编译 C++ 文件。我使用以下命令来执行此操作: cl -I"C:\Program Files\Java\jdk1.8.0_201\include" -I"C:\Program Files\Java\jdk1.8.0_201\include\win32" -I "D:\Dokumente\Hochschule\Bachelorarbeit\Eclipse\processingXJava\src\microsoft.azure.kinect.sensor.1.4.1\build\native\include\k4a" -LD "cCode.cpp" -Fe"cCode.dll"
当我执行此操作时,我收到“LNK2019:未解析的外部符号”错误。
任何想法如何解决这个问题?