Tag: gnu make

编译armv7上的armv7的nodejs 10.36

我尝试编译以在chroot(armel wheezy)环境中的embedded式linux上编译node.js。 该系统具有所有必需的工具版本。 Python 2.7.3 GCC 4.6 GNU Make 3.81 cpuinfo中: 处理器:ARMv7处理器rev 10(v7l)处理器:0 BogoMIPS:790.52 处理器:1 BogoMIPS:790.52 处理器:2 BogoMIPS:790.52 处理器:3 BogoMIPS:790.52 特性:swp half thumb fastmult vfp edsp neon vfpv3 CPU执行者:0x41 CPU架构:7 CPU变体:0x2 CPU部分:0xc09 CPU修订版本:10 经过多次尝试和研究在网上我可以编译它,但我在链接时收到错误。 我做了以下几点: export CFLAGS='-march=armv7-a' export CXXFLGAS='-march=armv7-a' ./configure –dest-cpu=armv7 –without-snapshot –without-ssl –dest-os=linux 我改变了选项,但没有任何效果。 使用–dest-cpu = arm引起编译错误(不支持BLX)。 因此我使用了armv7,这是这个系统上正确的CPU。 我编译并链接后收到以下错误: /root/node-v0.10.36/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o):在函数v8::internal::init_fast_log_function()': platform-posix.cc:(.text+0x598): undefined reference to […]

从node-gyp调用make

我正在使用node-gyp构build一个在Linux上用C ++编写的本地Node.js插件。 加载项依赖于另一个共享库。 这个库目前不是用gyp构build的,它只是一个makefile。 如果我先构build共享库,然后在我的binding.gyp文件的主目标中构build指定“libraries”值的附加组件,则一切正常。 但是,我想要做的是通过在共享库的makefile上调用make,从node-gyp进程内的源代码构build共享库。 我尝试使用'action'属性添加一个依赖的目标到附加的binding.gyp并使主目标依赖于它: { "target_name": "other_library", "type": "none", "actions": [ { "action_name": "build_other_library", "inputs": [], "outputs": [ "/path/to/build/output/libother.so" ], "action": [ "make", "-C", "/path/to/makefile" ] } ] } 这不完全工作。 它正在发现其他makefile和make正在启动(我可以看到这发生与–verbose设置),但生成文件不正确执行。 GNU make的隐式构build规则似乎在共享库的makefile运行时被压制。 这意味着.cc和.cpp文件不被编译为.o文件。 我意识到node-gyp本身就是从binding.gyp中的目标生成一组加载项的makefile文件,共享库的makefile文件正在从其中生成。 它是否inheritance了node-gyp的make设置,包括抑制内置规则? 有没有办法解决它? (除了向共享库的makefile中添加显式构build规则)? (我已经尝试用$(MAKE)replacemake,这没有什么区别)。 编辑: 在共享库上运行GNU make,使用shell指定的-d(即node-gyp之外),为典型源文件search隐式规则如下所示: Considering target file `code.o'. File `code.o' does not exist. Looking […]