psmoveapi的作者提供的是一Mingw編譯的源代碼,在Visual Studio中不能直接使用
實際上Mingw編譯產生的.a文件和.lib文件可以一樣的使用,vs中可以直接調用
在編譯好的psmoveapi的build文件夾下游兩種,一個是.dll.a 這個是動態鏈接庫,還有一種就是.a這個是靜態鏈接庫。
和lib文件一樣的用法 直接
#pragma comment(lib, "libpsmoveapi.dll.a")
就可以了
先要把平臺改爲x64的,然後在圖中位置打開屬性頁
在vc++目錄的包含目錄中添加psmoveapi的include文件夾
在庫目錄中添加build文件夾
然後在鏈接器的輸入下面的附加依賴項中添加libpsmoveapi.dll.a
最後把build文件夾內的dll文件複製到C盤 Windows文件夾下的System32和SysWOW64文件夾中就可以了
vs下的調試圖:
最後附上我用來測試的代碼
#include"psmove.h"
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#pragma comment(lib, "libpsmoveapi.dll.a")
int main()
{
PSMove *move;
move = psmove_connect();
if (move == NULL) {
fprintf(stderr, "Could not connect to controller.\n");
return EXIT_FAILURE;
}
psmove_has_calibration(move);
if (psmove_connection_type(move) == Conn_Bluetooth) {
float ax, ay, az, gx, gy, gz;
for (;;) {
int res = psmove_poll(move);
if (res) {
psmove_get_accelerometer_frame(move, Frame_SecondHalf,
&ax, &ay, &az);
psmove_get_gyroscope_frame(move, Frame_SecondHalf,
&gx, &gy, &gz);
printf("A: %5.2f %5.2f %5.2f ", ax, ay, az);
printf("G: %6.2f %6.2f %6.2f ", gx, gy, gz);
printf("\n");
}
}
}
psmove_disconnect(move);
return EXIT_SUCCESS;
}