DefTruth / lite.ai.toolkit

🛠 A lite C++ toolkit of awesome AI models, support ONNXRuntime, MNN, TNN, NCNN and TensorRT.
https://github.com/DefTruth/lite.ai.toolkit
GNU General Public License v3.0
3.63k stars 693 forks source link

Ubuntu下编译错误,怎么解决呢 #81

Closed chris2lee closed 2 years ago

chris2lee commented 2 years ago

ubuntu@ubuntu-M12SWA-TF:~/lite.ai.toolkit$ sh ./build.sh build directory exist! clearing ... clear built files done ! & rebuilding ... -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done ########## Checking Platform for: /home/ubuntu/lite.ai.toolkit ########### ==================================== Lite.AI.ToolKit 0.1.0 ============================= Project: lite.ai.toolkit Version: 0.1.0 SO Version: 0.1.0 Build Type: MinSizeRel Platform Name: linux Root Path: /home/ubuntu/lite.ai.toolkit

################################### Engines Enable Details ... ####################################### -- INCLUDE_OPENCV: ON -- ENABLE_ONNXRUNTIME: ON -- ENABLE_MNN: OFF -- ENABLE_NCNN: OFF -- ENABLE_TNN: OFF ###################################################################################################### ########## Setting up OpenCV libs for: /home/ubuntu/lite.ai.toolkit ########### ########################################################################################### Installing Lite.AI.ToolKit Headers for ONNXRuntime Backend ... -- Installing: /home/ubuntu/lite.ai.toolkit/build/lite.ai.toolkit/include/lite/ort/core/ort_config.h ·················· -- Configuring done -- Generating done -- Build files have been written to: /home/ubuntu/lite.ai.toolkit/build [ 0%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/utils.cpp.o [ 0%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/cava_ghost_arcface.cpp.o [ 1%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/center_loss_face.cpp.o [ 2%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/deeplabv3_resnet101.cpp.o [ 2%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/colorizer.cpp.o [ 3%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/age_googlenet.cpp.o [ 3%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/cava_combined_face.cpp.o [ 3%] Building CXX object CMakeFiles/lite.ai.toolkit.dir/lite/ort/cv/densenet.cpp.o In file included from /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:5:0: /home/ubuntu/lite.ai.toolkit/lite/utils.h: In function ‘std::vector<_Tp> lite::utils::math::softmax(const T, unsigned int, unsigned int&)’: /home/ubuntu/lite.ai.toolkit/lite/utils.h:94:29: error: ‘expf’ is not a member of ‘std’ softmax_probs[i] = std::expf(logits[i]); ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.h:94:29: note: suggested alternative: ‘exp’ softmax_probs[i] = std::expf(logits[i]); ^~~~ exp /home/ubuntu/lite.ai.toolkit/lite/utils.h: In function ‘std::vector<_Tp> lite::utils::math::softmax(const std::vector<_Tp>&, unsigned int&)’: /home/ubuntu/lite.ai.toolkit/lite/utils.h:119:29: error: ‘expf’ is not a member of ‘std’ softmax_probs[i] = std::expf(logits[i]); ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.h:119:29: note: suggested alternative: ‘exp’ softmax_probs[i] = std::expf(logits[i]); ^~~~ exp /home/ubuntu/lite.ai.toolkit/lite/utils.cpp: In function ‘void lite::utils::draw_axis_inplace(cv::Mat&, const EulerAngles&, float, int)’: /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:48:47: error: ‘cosf’ is not a member of ‘std’ const int x1 = static_cast(size std::cosf(yaw) std::cosf(roll)) + tdx; ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:48:47: note: suggested alternative: ‘cosh’ const int x1 = static_cast(size std::cosf(yaw) std::cosf(roll)) + tdx; ^~~~ cosh /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:48:64: error: ‘cosf’ is not a member of ‘std’ const int x1 = static_cast(size std::cosf(yaw) std::cosf(roll)) + tdx; ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:48:64: note: suggested alternative: ‘cosh’ const int x1 = static_cast(size std::cosf(yaw) std::cosf(roll)) + tdx; ^~~~ cosh /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:50:35: error: ‘cosf’ is not a member of ‘std’ size (std::cosf(pitch) std::sinf(roll) ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:50:35: note: suggested alternative: ‘cosh’ size (std::cosf(pitch) std::sinf(roll) ^~~~ cosh /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:50:54: error: ‘sinf’ is not a member of ‘std’ size (std::cosf(pitch) std::sinf(roll) ^~~~ /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:50:54: note: suggested alternative: ‘sinh’ size (std::cosf(pitch) * std::sinf(roll) ^~~~ sinh /home/ubuntu/lite.ai.toolkit/lite/utils.cpp:51:37: error: ‘cosf’ is not a member of ‘std’

DefTruth commented 2 years ago

https://stackoverflow.com/questions/55458487/stdexpf-and-stdlogf-not-recognized-by-gcc-7-2-0
gcc编译器不支持类似std::expf的问题,这确实是我没考虑到,正在填坑。

DefTruth commented 2 years ago

可以尝试下修复后的代码 (#82 )

chris2lee commented 2 years ago

/home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h: In instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’: /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: required from here /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: error: explicit instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’ but no definition available [-fpermissive] template LITE_EXPORTS std::vector softmax(const float logits, unsigned int _size, unsigned int &max_id); ^ /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h: In instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’: /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: required from here /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: error: explicit instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’ but no definition available [-fpermissive] /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h: In instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’: /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: required from here /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: error: explicit instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’ but no definition available [-fpermissive] /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h: In instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’: /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: required from here /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: error: explicit instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’ but no definition available [-fpermissive] /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h: In instantiation of ‘std::vector lite::utils::math::softmax(const T, unsigned int, unsigned int&) [with T = float]’: /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: required from here /home/ubuntu/RobustVideoMatting-onnxruntime/lite.ai.toolkit/include/lite/utils.h:64:117: error: explicit instantiation of ‘std::vector lite::utils::math::softmax(const T*, unsigned int, unsigned int&) [with T = float]’ but no definition available [-fpermissive] CMakeFiles/lite_rvm.dir/build.make:75: recipe for target 'CMakeFiles/lite_rvm.dir/examples/test_lite_rvm.cpp.o' failed make[2]: [CMakeFiles/lite_rvm.dir/examples/test_lite_rvm.cpp.o] Error 1 CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/lite_rvm.dir/all' failed make[1]: [CMakeFiles/lite_rvm.dir/all] Error 2 Makefile:90: recipe for target 'all' failed make: *** [all] Error 2 Testing Start ... ./build.sh: 10: ./build.sh: ./lite_rvm: not found Testing Successful !

还是发生了错误