Неопределенный символ с использованием 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

0 ответов

Другие вопросы по тегам