【发布时间】:2020-03-13 14:31:26
【问题描述】:
我想做一个交叉编译 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
有人有类似的问题吗?
【问题讨论】: