美文网首页
linux 下用node 编译带有sqlite3的C语言文件

linux 下用node 编译带有sqlite3的C语言文件

作者: 爱睡觉的魚 | 来源:发表于2021-08-15 03:10 被阅读0次

最新接手了一个项目精算问题,由于精算部分是c语言做的,而精算的输入是通过typescript 传入 (关于ts这里不讨论),所以需要 将c语言编译后,放在node中运行

首先安装node ,npm,也可以使用 安装nvm 来管理node。

这时你要检查一下你linux系统, 使用命令 cat /proc/version

参考链接 https://www.cnblogs.com/opensmarty/p/10936315.html

接着就是根据不同 linux系统安装 软件 

参考链接 https://www.cnblogs.com/linuxAndMcu/p/10717565.html#_label5

我们使用的node-gyp编译,通过将C语言传入C++,然后使用 node-addon-api 编译 C++ ,最后通过node-gyp命令生成一个.node后缀的文件,将其导入node工程,通过require引入就能使用了。  不会的可以下面留言。

参考链接 https://juejin.cn/post/6844903971220357134

https://nodejs.org/api/n-api.html#n_api_functions_to_convert_from_n_api_to_c_types,

将C语言引入C++需要 进行一点改变。 参考链接: c++调用c函数  

普通c语言的调用上面就可以了,下面是在c文件中 引入 sqlite3.h 的处理。

首先检查一下linux中的 sqlite3 的位置 ,命令: which sqlite3 或者 find -name sqlite3

然后检查是否有sqlite3的库文件 。参考 链接 

 https://www.cnblogs.com/hnrainll/archive/2011/09/08/2170489.html

我这里没有 ,需要安装, 参考链接

 https://blog.csdn.net/weixin_36474001/article/details/116681471

安装之后 在 根目录 使用命令 检查  库文件,头文件是否已经有了

find -name libsqlitee3.a  , find -name sqlite3.h

接着运行,报错

make: 进入目录“/opt/1_hello_world/build”

  CC(target) Release/obj.target/addon/node-addon-api/person/Person.o

  CXX(target) Release/obj.target/addon/hello.o

make: g++:命令未找到

make: *** [Release/obj.target/addon/hello.o] 错误 127

接着安装 gcc-c++.x86_64 ,参考链接

https://www.cnblogs.com/kerrycode/p/4748606.html

好了,再运行就ok了

demo地址    demo。有问题请在下面留言

相关文章

  • linux 下用node 编译带有sqlite3的C语言文件

    最新接手了一个项目精算问题,由于精算部分是c语言做的,而精算的输入是通过typescript 传入 (关于ts这里...

  • 操作系统第一次上机实验-Linux系统下的进程创建

    本文使用Linux系统,语言使用C语言 1.如何在Linux系统下,编译运行C语言 1.1创建编写一个.c文件 如...

  • mysqlclient

    linux下用C语言写MySQL程序,用如下命令编译时出错: [xitong@localhost mysql]$ ...

  • C语言的编译和执行过程

    没有系统的学过C语言,为了了解java编译流程。先简单的略过了一下C语言的编译过程。 C语言在Linux系统下编译...

  • 01 重忆C之 作用域与生存周期

    Linux编译环境 编写的 C 语言程序常以.c结尾,如main.c。对于main.c文件,可通过执行 进行编译(...

  • 简单的 makefile 文件

    Linux 系统下编译 C 文件往往用 make 工具。假定当前的项目目录下有 file.c、search.c、s...

  • c-1

    C语言编译过程 (1)预编译 由.c文件到.i文件,叫预编译。主要工作是把用#include导入的头文件展开,包含...

  • go交叉编译并使用pm2部署

    交叉编译linux可执行文件 注:如果调用了c/c++无法交叉编译 pm2守护进程 先安装node和npm再安装p...

  • 关于Makefile的使用

    本周主要学习在Linux系统下使用Makefile对多个C语言源程序进行编译。 对于多个C语言源程序编译的时候,可...

  • 命令行编译C++/C文件

    编译C文件用GCC 编译C++文件(包括.C/C++文件)用G++ 编译C++文件常用方法: 单个文件: g++ ...

网友评论

      本文标题:linux 下用node 编译带有sqlite3的C语言文件

      本文链接:https://www.haomeiwen.com/subject/pebybltx.html