質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MSYS

MSYS(Minimal SYStem)は、Windows上で動くUnixシェル、テキスト操作ユーティリティなどをまとめたパッケージ。C言語やFortranのコンパイラであるMinGWをカバーする目的で作られています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

0回答

116閲覧

msys2環境よりOpenCVにて-lopencv_videoioがリンカーできない

shun____

総合スコア0

MSYS

MSYS(Minimal SYStem)は、Windows上で動くUnixシェル、テキスト操作ユーティリティなどをまとめたパッケージ。C言語やFortranのコンパイラであるMinGWをカバーする目的で作られています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2024/03/17 20:57

実現したいこと

リンカーを正確にし、ファイルの実行可能を目指したい。

発生している問題・分からないこと

現在の環境
bash:msys2
$ g++ -v
gcc version 13.2.0 (Rev5, Built by MSYS2 project)
opencv入手方法
pacman -S mingw-w64-x86_64-opencv

コード $ g++ 4-7-1.cpp -o 4-7-1.exe -std=c++11 -I/C:/msys64/mingw64/include/opencv4 \ -LC:/msys64/mingw64/lib -lopencv_core -lopencv_highgui -lopencv_imgcodecs \ -lopencv_videoio -lopencv_video -lopencv_imgproc -lopencv_features2d -lopencv_calib3d \ -lopencv_objdetect -lopencv_ml -lopencv_flann

でコンパイルをしようとしたがlibopencv_videoio-409.dllがリンクできない
しかし、ビルトは成功していて
ビルドを開始しています...
cmd /c chcp 65001>nul && C:\msys64\mingw64\bin\g++.exe -fdiagnostics-color=always -g C:\my_program\opencv_ex\222\sampleprogram\4-7-1.cpp -o C:\my_program\opencv_ex\222\sampleprogram\4-7-1.exe -IC:\msys64\mingw64\include\opencv4 -LC:\msys64\mingw64\lib -std=c++11 -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_videoio

ビルドが正常に完了しました。

エラーメッセージ

error

1$ ./4-7-1.exe 2C:/my_program/opencv_ex/222/sampleprogram/4-7-1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory 3 4となってはいるが、libopencv_videoio.dllのリンクエラーではないかと推測している

該当のソースコード

C++

1#define _USE_MATH_DEFINES 2#include <iostream> 3#include <cmath> 4#include <opencv2/opencv.hpp> 5using namespace std; 6using namespace cv; 7string win_src = "src"; 8string win_dst = "dst"; 9 10int main() 11{ 12 string file_src = "src.png"; // 入力画像のファイル名 13 string file_dst = "abc.png"; // 出力画像のファイル名 14 // 入力画像(カラー)の読み込み 15 Mat img_src = imread(file_src, IMREAD_COLOR); 16 // 入力画像(グレースケール)の読み込み 17 //Mat img_src = imread(file_src, IMREAD_GRAYSCALE); 18 19 Mat img_dst; 20 if(!img_src.data) { 21 cout << "error" << endl; 22 return -1; 23 }; 24 25 // ウインドウ生成 26 namedWindow(win_src, WINDOW_AUTOSIZE); 27 namedWindow(win_dst, WINDOW_AUTOSIZE); 28 29 // ここに核となる処理を記述する 30 flip(img_src, img_dst, 0); // 垂直反転 31 32 imshow(win_src, img_src); // 入力画像を表示 33 imshow(win_dst, img_dst); // 出力画像を表示 34 imwrite(file_dst, img_dst); // 処理結果の保存 35 36 waitKey(0); // キー入力待ち 37 return 0; 38} 39

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果
コード $ ldd ./4-7-1.exe ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ffc740d0000) KERNEL32.DLL => /c/Windows/System32/KERNEL32.DLL (0x7ffc72320000) KERNELBASE.dll => /c/Windows/System32/KERNELBASE.dll (0x7ffc71830000) msvcrt.dll => /c/Windows/System32/msvcrt.dll (0x7ffc72160000) libgcc_s_seh-1.dll => /mingw64/bin/libgcc_s_seh-1.dll (0x7ffc41e10000) libopencv_highgui-409.dll => /mingw64/bin/libopencv_highgui-409.dll (0x7ffc036a0000) libopencv_core-409.dll => /mingw64/bin/libopencv_core-409.dll (0x7ffbdf6c0000) libopencv_imgcodecs-409.dll => /mingw64/bin/libopencv_imgcodecs-409.dll (0x7ffbf6ff0000) libstdc++-6.dll => /mingw64/bin/libstdc++-6.dll (0x7ffbe0370000) libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x7ffc41020000) OPENGL32.dll => /c/Windows/SYSTEM32/OPENGL32.dll (0x7ffbec7f0000) libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x226fd770000) opengl32.dll => /c/Windows/System32/opengl32.dll (0x226fd9d0000) ADVAPI32.dll => /c/Windows/System32/ADVAPI32.dll (0x7ffc72230000) sechost.dll => /c/Windows/System32/sechost.dll (0x7ffc72780000) bcrypt.dll => /c/Windows/System32/bcrypt.dll (0x7ffc71410000) libtbb12.dll => /mingw64/bin/libtbb12.dll (0x7ffbee330000) zlib1.dll => /mingw64/bin/zlib1.dll (0x7ffc36370000) libopenblas.dll => /mingw64/bin/libopenblas.dll (0x7ffbca100000) RPCRT4.dll => /c/Windows/System32/RPCRT4.dll (0x7ffc72030000) USER32.dll => /c/Windows/System32/USER32.dll (0x7ffc73e60000) win32u.dll => /c/Windows/System32/win32u.dll (0x7ffc71440000) libjpeg-8.dll => /mingw64/bin/libjpeg-8.dll (0x7ffbea860000) GDI32.dll => /c/Windows/System32/GDI32.dll (0x7ffc722f0000) gdi32full.dll => /c/Windows/System32/gdi32full.dll (0x7ffc71530000) msvcp_win.dll => /c/Windows/System32/msvcp_win.dll (0x7ffc71be0000) ucrtbase.dll => /c/Windows/System32/ucrtbase.dll (0x7ffc71c80000) combase.dll => /c/Windows/System32/combase.dll (0x7ffc723f0000)

見てみるとlibopencv_videoio-409.dllだけが存在しない

補足

"C:\msys64\mingw64\lib\libopencv_videoio.dll.a"
"C:\msys64\mingw64\bin\libopencv_videoio-409.dll"

は存在している。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問