编译 onigmo 库

onigmo github: https://github.com/k-takata/Onigmo


测试环境:Windows

我编译库时习惯于在 vs code 下 git clone 文件后,再执行相应的编译操作

而 vs code 提供的终端一般是 git bash 和 powershell

在编译 windows 下运行的库=》.lib 和 .dll

不能直接在 powershell 和 cmd 下跑 build_nmake.cmd 命令,前者会提示无法识别脚本,后者会缺少 stdlib.h 文件

1
fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory

这其实是编译环境问题

切到 visual studio 提供的终端

在终端中再指定上述命令就可以编译出需要的库文件了


 

这类问题很常见,譬如编译 node.js 的 napi 工程,如果在 powershell 下执行 npm install 时会提示缺少 mvsm_version。

这种情况即使我们指定相应的 version 也不行,仍然会报错

解决方法就是跟上述一样,切到 vs 环境下再执行 npm 或者 node-gyp 命令

 

笔记:引用静态库 onigmo_s.lib 时,需要手动修改 onigmo.h

复制代码
#ifndef ONIG_EXTERN
# ifdef RUBY_EXTERN
#  define ONIG_EXTERN   RUBY_EXTERN
# else
#  if defined(_WIN32) && !defined(__GNUC__)
#   if defined(EXPORT) || defined(RUBY_EXPORT)
#    define ONIG_EXTERN   extern __declspec(dllexport)
#   else
// 静态库不需要 dllimport
// #    define ONIG_EXTERN   extern __declspec(dllimport)
#   endif
#  endif
# endif
#endif
复制代码

 

posted @   strive-sun  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示