Неопределенный символ с использованием node-ffi в узле js
Я должен включить код C в nodejs, поэтому я использовал node-ffi
Я создал log.c
:
#include <stdio.h>
#if defined(WIN32) || defined(_WIN32)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
EXPORT void etat_periph(char periph[]){
FILE* fichier=NULL;
fichier=fopen("log.txt","a+");
fputs(fichier,periph);
fprintf(fichier,"**********END**********");
fclose(fichier);
}
EXPORT void user_connect(char user[] ,char date[]){
FILE* fichier=NULL;
fichier=fopen("log.txt","a+");
fputs(fichier,"***********New User*********");
fputs(fichier,"User connected: %s at: %s",user,date);
fclose(fichier);
}
Я добавил в файл app.js:
var ffi = require('node-ffi');
var libfile = ffi.Library('./libfile', {
'etat_periph': ["void", ["string", "string"]],
'user_connect': ["void", ["string", "string"]]
});
io.sockets.on('connection', function (socket) {
socket.on("new_user", function (data) {
console.log("a new user is connected", data);
var current_date = new Date();
var date = current_date.toString();
libfile.user_connect(data, date);
});
socket.on("state", function (data) {
console.log(data);
libfile.etat_periph(data);
});
});
когда я запускаю app.js, я получаю это сообщение об ошибке:
Ошибка: Ошибка получения динамического символа: ./libfile.so: неопределенный символ: etat_periph