这里是情况:
我在Windows上编写了一个小型的Node应用程序。此应用程序需要一些非核心的Node模块,例如“ffi”和“express”。我已经使用npm安装了这些模块,一切正常。
现在我想将这个应用程序移植到一个嵌入式构建根Linux发行版上,该发行版没有编译器也没有互联网访问权限。
起初,由于js是解释性语言,我认为只需复制模块即可,但我遇到了“无效的ELF头”错误,因此似乎这些模块需要编译并且与操作系统相关。
因此,我想从我的Windows机器上为这个嵌入式Linux发行版生成这些模块。
我已经有了交叉编译器,因为我在这个嵌入式Linux上使用它来编译我的主要应用程序(通过cmake和eclipse)。
我需要生成一个针对正确操作系统的makefile吗?如果是,怎么做?
还是我需要使用gyp?如果是,怎么做?
还有其他方法吗? (如果绝对必要,我可以在虚拟机中使用Linux,但这将使它变得更重,并且我仍然需要交叉编译,因此这是最后的选择)。
我是一名C/C++ Windows开发人员。我几乎没有使用Node、js和Linux的经验,因此请在回答中详细说明。
非常感谢。
ffi
正在调用本地代码,因此您需要确保在每个目标系统上正确设置node-gyp。 - CodingIntriguemingw
用户组有很多关于交叉编译(使用gcc)的讨论。请参见http://mingw.5.n7.nabble.com/MinGW-User-f3.html,这是一个非常易于搜索的界面,可以找到这些讨论。祝你好运。 - shellter