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

Dark.Hades viết 14:16 ngày 01/10/2018

g++ -o imgpng.cpp main.cpp -I.\lib\opencv\build\include

-o chưa có output
Thử thay \ thành / xem

HelloWorld viết 14:13 ngày 01/10/2018

mì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

viết 14:11 ngày 01/10/2018

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 ko

lỗ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…

HelloWorld viết 14:08 ngày 01/10/2018

nó ra lỗi này ạ :#
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lopencv

viết 14:15 ngày 01/10/2018

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ô

HelloWorld viết 14:19 ngày 01/10/2018

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ỉ

viết 14:18 ngày 01/10/2018

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ồi vcpkg install opencv là xong, tạo project mới build ngon lành khỏi cần include gì hết

còn g++ trên windows thì xài msys2, giải thích mất công lắm

HelloWorld viết 14:18 ngày 01/10/2018

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

HelloWorld viết 14:09 ngày 01/10/2018

Computing at Aberdeen – 20 Jan 16

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

Dark.Hades viết 14:24 ngày 01/10/2018

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

HelloWorld viết 14:21 ngày 01/10/2018

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

Dark.Hades viết 14:21 ngày 01/10/2018

đ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

Bài liên quan
0