在我自己的C+;上链接OpenCV.js模块时出错+;使用Emscripten初始化 我一直在C++代码中工作,从网络摄像头接收图像数据(灰度),并将检测到的角数(快速转角)返回到JavaScript。为了获得成功编译代码,我下载并编译OpenCV.JS,用ESPRONTEN创建每个库,编码我自己的C++类来获得图像数据,包括OpenCV.HPP和BooD。工作非常好

在我自己的C+;上链接OpenCV.js模块时出错+;使用Emscripten初始化 我一直在C++代码中工作,从网络摄像头接收图像数据(灰度),并将检测到的角数(快速转角)返回到JavaScript。为了获得成功编译代码,我下载并编译OpenCV.JS,用ESPRONTEN创建每个库,编码我自己的C++类来获得图像数据,包括OpenCV.HPP和BooD。工作非常好,javascript,c++,opencv,llvm,emscripten,Javascript,C++,Opencv,Llvm,Emscripten,当我决定使用OpenCV FeatureDetector时,我的问题就开始了。我能够编译只包含头的代码,但是一旦我从这个模块插入指令,我就得到了一个链接错误。 触发链接错误的代码行是: Ptr<FeatureDetector> detector = ORB::create(); 链接错误: [100%] Linking CXX executable MyCV.js error: undefined symbol: gzclose warning: Link with `-s LLD

当我决定使用OpenCV FeatureDetector时,我的问题就开始了。我能够编译只包含头的代码,但是一旦我从这个模块插入指令,我就得到了一个链接错误。 触发链接错误的代码行是:

Ptr<FeatureDetector> detector = ORB::create();
链接错误:

[100%] Linking CXX executable MyCV.js
error: undefined symbol: gzclose
warning: Link with `-s LLD_REPORT_UNDEFINED` to get more information on undefined symbols
warning: To disable errors for undefined symbols use `-s ERROR_ON_UNDEFINED_SYMBOLS=0`
error: undefined symbol: gzeof
error: undefined symbol: gzgets
error: undefined symbol: gzopen
error: undefined symbol: gzputs
error: undefined symbol: gzrewind
Error: Aborting compilation due to previous errors
shared:ERROR: '/Users/dev/Documents/_Git/emsdk/node/12.9.1_64bit/bin/node /Users/dev/Documents/_Git/emsdk/upstream/emscripten/src/compiler.js /var/folders/94/qc6kgl3x6r30g7y04t_9w4w00000gn/T/tmpDzc2sz.txt' failed (1)
make[2]: *** [MyCV.js] Error 1
make[1]: *** [CMakeFiles/MyCV.dir/all] Error 2
make: *** [all] Error 2
在opencvjs编译库上运行nm命令时显示的消息:

dev# nm libopencv_features2d.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(agast.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(agast_score.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(akaze.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(bagofwords.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(blobdetector.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(brisk.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(draw.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(dynamic.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(evaluation.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fast.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fast_score.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(feature2d.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(gftt.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(kaze.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(AKAZEFeatures.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(KAZEFeatures.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fed.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(nldiffusion_functions.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(keypoint.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(main.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(matchers.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(mser.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(orb.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(opencl_kernels_features2d.cpp.o) Unexpected metadata version: 2 (Expected: 1)
谢谢你们的帮助。

我成功了。 多亏了@ÖöTiib info,我意识到build_js.py有一个编译Zlib的标志

在我的CMakeLists.txt中没有对该库的引用。所以我补充说:

target_link_libraries(MyCV /Users/dev/Documents/_Git/opencv/build_wasm/3rdparty/lib/libzlib.a)

问题已解决;)

似乎libz没有链接。C++链接器错误是最简单的问题,所以当这些问题引起麻烦时,应该避免使用。谢谢@ TIIB给你的提示。在build_js.py中确实有一个编译zlib的标志,它被设置为ON。可能lib存储在另一个dir中,而这个dir不在我的CMakeLists中。我会调查的,你是对的。只需将引用设置为dir,该dir具有库的Wasm版本,它现在正在链接。谢谢
dev# nm libopencv_features2d.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(agast.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(agast_score.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(akaze.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(bagofwords.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(blobdetector.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(brisk.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(draw.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(dynamic.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(evaluation.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fast.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fast_score.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(feature2d.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(gftt.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(kaze.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(AKAZEFeatures.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(KAZEFeatures.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(fed.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(nldiffusion_functions.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(keypoint.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(main.cpp.o) Unexpected metadata version: 2 (Expected: 1)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(matchers.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(mser.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(orb.cpp.o) Bad section type
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libopencv_features2d.a(opencl_kernels_features2d.cpp.o) Unexpected metadata version: 2 (Expected: 1)
target_link_libraries(MyCV /Users/dev/Documents/_Git/opencv/build_wasm/3rdparty/lib/libzlib.a)