我有node-gyp交叉编译的链接器问题

我想做一个交叉编译的nodejs C ++插件(node-gyp)。
设置为

export AR=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-ar
export CC=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc 
export CXX=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
export LINK=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++

这是我的binding.gyp

{
  'targets': [
    {
      'target_name': 'binding','sources': [ 'binding.cc' ],'includes': ['../common.gypi'],"cflags" : ['-march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/armv7a-vfp-neon-oe-linux-gnueabi'],}
  ]
}

命令是'node-gyp --arch = arm configure build' 我认为编译已通过,但链接器却显示此类错误。

SOLINK_MODULE(target) Release/obj.target/binding.node
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot open crti.o: No such file or directory
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot open crtbeginS.o: No such file or directory
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot open crtendS.o: No such file or directory
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot open crtn.o: No such file or directory
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lstdc++
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lm
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lgcc_s
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lpthread
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lc
/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/ld: error: cannot find -lgcc_s
collect2: error: ld returned 1 exit status

有人可以遇到类似的问题吗?

lcmoba72 回答:我有node-gyp交叉编译的链接器问题

我自己解决了。
这是整个binding.gyp文件。

{
  'targets': [
    {
      'target_name': 'binding','sources': [ 'binding.cc' ],'includes': ['../common.gypi'],"cflags" : ['-march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/armv7a-vfp-neon-oe-linux-gnueabi'],'link_settings': {"libraries": [ "-march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=/2nd-hdd/home/pkang/sdk/tm2sdk/sysroots/armv7a-vfp-neon-oe-linux-gnueabi"],},}
  ]
}

本文链接:https://www.f2er.com/3082520.html

大家都在问