1

我必须在 nodejs 中包含一个 C 代码,所以我使用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

4

0 回答 0