ncnn-webassembly-yolov5 icon indicating copy to clipboard operation
ncnn-webassembly-yolov5 copied to clipboard

Compile with given CMakeLists.txt

Open waittim opened this issue 4 years ago • 0 comments

I'm trying to follow the emcc compiling process. This is what I did.

  1. Copy the include and lib folders from ncnn/build/install, paste them into a new folder ncnn in the root.
  2. Run the following code in Terminal.
mkdir build
cd build
emcmake cmake ..
emmake make 

Now the error returned is:

make: make
Scanning dependencies of target yolov5
[ 50%] Building CXX object CMakeFiles/yolov5.dir/yolov5.cpp.o
[100%] Linking CXX executable yolov5.js
wasm-ld: error: unable to find library -lOpenMP::OpenMP_CXX
em++: error: '/home/zekun/Documents/emsdk/upstream/bin/wasm-ld -o yolov5.wasm CMakeFiles/yolov5.dir/yolov5.cpp.o -L/home/zekun/Documents/emsdk/upstream/emscripten/system/local/lib ../ncnn/lib/libncnn.a -L/home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm -lOpenMP::OpenMP_CXX /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libc-mt.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libcompiler_rt-mt.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libc++-mt-noexcept.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libc++abi-mt-noexcept.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libdlmalloc-mt.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libpthread-mt.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libc_rt_wasm.a /home/zekun/Documents/emsdk/upstream/emscripten/cache/wasm/libsockets-mt.a -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --allow-undefined --import-memory --shared-memory --strip-debug --export-table --export yolov5_ncnn --export stackSave --export stackRestore --export stackAlloc --export __wasm_call_ctors --export fflush --export __errno_location --export emscripten_get_global_libc --export __pthread_tsd_run_dtors --export pthread_self --export __emscripten_pthread_data_constructor --export emscripten_futex_wake --export emscripten_stack_set_limits --export memalign --export malloc --export free --export setThrew --export emscripten_main_thread_process_queued_calls --export _ZSt18uncaught_exceptionv --export __cxa_find_matching_catch --export __cxa_is_pointer_type --export __cxa_can_catch -z stack-size=5242880 --initial-memory=1073741824 --no-entry --max-memory=1073741824 --global-base=1024' failed (1)
CMakeFiles/yolov5.dir/build.make:98: recipe for target 'yolov5.js' failed
make[2]: *** [yolov5.js] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/yolov5.dir/all' failed
make[1]: *** [CMakeFiles/yolov5.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I'm not sure where the OpenMP dependence comes from. May I know is there any suggestion? Thank you so much!

waittim avatar Nov 23 '20 11:11 waittim