01/10/2018, 12:08
Build chương trình với thư viện opencv trên g++
chào các bạn, mình có viết 1 chương trình có sử dụng opencv, khi mình build trên cmd hoặc terminal của visual studio code, với g++ thì lỗi liên kêt với opencv2/core/core.hpp
mình build như sau
g++ -o run imgpng.cpp main.cpp -I.libopencvuildinclude
thư mục opencv mình để trong thư mục lib trong project
làm thê nào để build được opencv trên g++ console nhỉ,
xincamon
Bài liên quan
-o chưa có output
Thử thay \ thành
/
xemmình viết thiểu đó
vẫn không được , build trên terminal của vsc , hay cmd, powershell của win đều k được
chưa link thư viện
-L./lib/opencv/lib -lopencv
ko xài opencv nên ko biết nó cần link thư viện nào nên để
-lopencv
chung chung thử coi được kolỗi “undefined reference” nghĩa là ko link được với thư viện của opencv. Header có nhưng implementation ko có. Include header giống như include mục lục của 1 cuốn sách, nó có ghi hàm xyz ở trang 345 nhưng cuốn sách ko có trang 345…
nó ra lỗi này ạ :#
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lopencv
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_photo -lopencv_aruco -lopencv_bgsegm -lopencv_ccalib -lopencv_dnn_modern -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hdf -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_viz -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_ml -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
1 đống lib chơi hết luôn đi
-lopencv_core
trước rồi xem thiếu thư viện nào thì thêm thư viện đó vôe thấy trên mạng họ dùng cmake để build lại opencv , rồi có thư mục mingw trong opencv, còn opencv e đang dùng là tải bản build rồi cho windows, k biết có được k nhỉ
bản nào? Bản cho VC++ thì mingw nó ko build được
xài đại VS2017 luôn đi. Down cái vcpkg về rồi gõ
vcpkg integrate install
rồivcpkg install opencv
là xong, tạo project mới build ngon lành khỏi cần include gì hếtcòn g++ trên windows thì xài msys2, giải thích mất công lắm
khả năng e phải dùng cmake build lại opencv từ mã nguồn rồi, e dùng bàn build rồi 3.0 cho windows
Compile OpenCV software for Windows with the MinGW-W64 GCC (C++) toolchain
A page dedicated to the compilation of the OpenCV library in Windows using the MinGW-W64 GCC workchain. Preliminary points to consider Portability within the same Operating System and also across …
e thấy hướng dẫn này phải dùng cmake build lại opencv để biên dịch với mingw
Bạn phải hiểu công cụ mà bạn dùng trước đã.
CMake nó cũng có nhiều chức năng, nếu bạn dùng 1 tool build trên nền linux như cygwin, mingw, msys thì nó sẽ build trực tiếp bằng gcc/gnu, còn build trên windows thì nó sẽ ra file dành cho visual studio
Bạn build qua mingw tức là bạn dùng 1 lib không phải build trực tiếp cho windows.
Nếu dùng mingw thì tốt nhất là cài msys2, nó có sẵn pacman cho bạn cài, hệt như dùng linux, có lẽ đơn giản hơn rất nhiều
mình chưa tìm hiểu về cmake, đang là sinh viên, bài tập cũng ít động chạm đến phần nào cần cmake :3 nên k rõ về cmake lắm
đi từ đơn giản để hiểu trước đã, cứ làm như bác tntxtnt hướng dẫn, nếu ngại cài vs nặng thì cài msys2 như mình nói, sẽ đơn giản và nhẹ hơn việc dùng vs