在节点js中使用node-ffi的未定义符号

时间:2015-07-22 14:09:43

标签: javascript node.js node-ffi

我必须在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

0 个答案:

没有答案