<環境>
- Windows10 64bit
- visual studio 2015
- opencv2.4.6
- opencv3.4.0
プログラムはc++です。
#include <opencv2/opencv.hpp> //#include <opencv2/opencv_lib.hpp>// #if _DEBUG #pragma comment(lib, "opencv_calib3d2411d.lib") #pragma comment(lib, "opencv_contrib2411d.lib") #pragma comment(lib, "opencv_core2411d.lib") #pragma comment(lib, "opencv_features2d2411d.lib") #pragma comment(lib, "opencv_flann2411d.lib") #pragma comment(lib, "opencv_gpu2411d.lib") #pragma comment(lib, "opencv_highgui2411d.lib") #pragma comment(lib, "opencv_imgproc2411d.lib") #pragma comment(lib, "opencv_legacy2411d.lib") #pragma comment(lib, "opencv_ml2411d.lib") #pragma comment(lib, "opencv_nonfree2411d.lib") #pragma comment(lib, "opencv_objdetect2411d.lib") #pragma comment(lib, "opencv_ocl2411d.lib") #pragma comment(lib, "opencv_photo2411d.lib") #pragma comment(lib, "opencv_stitching2411d.lib") #pragma comment(lib, "opencv_superres2411d.lib") #pragma comment(lib, "opencv_ts2411d.lib") #pragma comment(lib, "opencv_video2411d.lib") #pragma comment(lib, "opencv_videostab2411d.lib") #else #pragma comment(lib, "opencv_calib3d2411.lib") #pragma comment(lib, "opencv_contrib2411.lib") #pragma comment(lib, "opencv_core2411.lib") #pragma comment(lib, "opencv_features2d2411.lib") #pragma comment(lib, "opencv_flann2411.lib") #pragma comment(lib, "opencv_gpu2411.lib") #pragma comment(lib, "opencv_highgui2411.lib") #pragma comment(lib, "opencv_imgproc2411.lib") #pragma comment(lib, "opencv_legacy2411.lib") #pragma comment(lib, "opencv_ml2411.lib") #pragma comment(lib, "opencv_nonfree2411.lib") #pragma comment(lib, "opencv_objdetect2411.lib") #pragma comment(lib, "opencv_ocl2411.lib") #pragma comment(lib, "opencv_photo2411.lib") #pragma comment(lib, "opencv_stitching2411.lib") #pragma comment(lib, "opencv_superres2411.lib") #pragma comment(lib, "opencv_ts2411.lib") #pragma comment(lib, "opencv_video2411.lib") #pragma comment(lib, "opencv_videostab2411.lib") #endif #include <opencv2/highgui/highgui.hpp> int main(void) { cv::Mat src_img; src_img = cv::imread("C:\Users\Daito\Desktop\DTWW6svVQAEvgvk.jpg", 1); // 画像が読み込まれなかったらプログラム終了 if(src_img.empty()) return -1; // 結果画像表示 cv::namedWindow("Image", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO); cv::imshow("Image", src_img); cv::waitKey(0); }
プログラム内の
#if _DEBUG #pragma comment(lib, "opencv_calib3d2411d.lib") #pragma comment(lib, "opencv_contrib2411d.lib") #pragma comment(lib, "opencv_core2411d.lib") #pragma comment(lib, "opencv_features2d2411d.lib") #pragma comment(lib, "opencv_flann2411d.lib") #pragma comment(lib, "opencv_gpu2411d.lib") #pragma comment(lib, "opencv_highgui2411d.lib") #pragma comment(lib, "opencv_imgproc2411d.lib") #pragma comment(lib, "opencv_legacy2411d.lib") #pragma comment(lib, "opencv_ml2411d.lib") #pragma comment(lib, "opencv_nonfree2411d.lib") #pragma comment(lib, "opencv_objdetect2411d.lib") #pragma comment(lib, "opencv_ocl2411d.lib") #pragma comment(lib, "opencv_photo2411d.lib") #pragma comment(lib, "opencv_stitching2411d.lib") #pragma comment(lib, "opencv_superres2411d.lib") #pragma comment(lib, "opencv_ts2411d.lib") #pragma comment(lib, "opencv_video2411d.lib") #pragma comment(lib, "opencv_videostab2411d.lib") #else #pragma comment(lib, "opencv_calib3d2411.lib") #pragma comment(lib, "opencv_contrib2411.lib") #pragma comment(lib, "opencv_core2411.lib") #pragma comment(lib, "opencv_features2d2411.lib") #pragma comment(lib, "opencv_flann2411.lib") #pragma comment(lib, "opencv_gpu2411.lib") #pragma comment(lib, "opencv_highgui2411.lib") #pragma comment(lib, "opencv_imgproc2411.lib") #pragma comment(lib, "opencv_legacy2411.lib") #pragma comment(lib, "opencv_ml2411.lib") #pragma comment(lib, "opencv_nonfree2411.lib") #pragma comment(lib, "opencv_objdetect2411.lib") #pragma comment(lib, "opencv_ocl2411.lib") #pragma comment(lib, "opencv_photo2411.lib") #pragma comment(lib, "opencv_stitching2411.lib") #pragma comment(lib, "opencv_superres2411.lib") #pragma comment(lib, "opencv_ts2411.lib") #pragma comment(lib, "opencv_video2411.lib") #pragma comment(lib, "opencv_videostab2411.lib") #endif
は#include <opencv2/opencv_lib.hpp>の中身です。分け合って直接書いています。
こちらが一回目のエラーです。
1>------ ビルド開始: プロジェクト:ConsoleApplication7, 構成:Release x64 ------ 1>opencv_highgui2411.lib(opencv_highgui2411.dll) : fatal error LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== ``` と出てきました。 ここでどうしてよいかわからなくなりこちらで助けを求めようとしたのですが、頼りすぎはよくないと考え、同じ様なヘッダファイルを使ったプログラムでどのようなライブラリが必要だったのかを調べたところ ライブラリにopencv_world310.libを加えてビルドしたところうまくいきました。 しかし、今回はバージョン2のOPENCVで組んだプログラムでなぜバージョン3のOPENCVのライブラリopencv_world310.libを加えてうまくいったのかよくわかりません。これでは当てずっぽうになってしまい実力に繋がりません。 ライブラリの指定はD:\opencv2.4.11\opencv\build\x86\vc12\lib と指定し、依存するファイルの部分でopencv_world310.lib、opencv_calib3d2411.libを加えました。 ヘッダファイルはC:\opencv\build\includeと指定しました。 どうかなぜうまくいったのか推測していただけないでしょうか? - もしかしたらopencv2.4.6のライブラリの方にopencv3.4.0のopencv_world310.libに代わるライブラリがあるのかもしれませんがどのように見つければよいかわかりません。 どうかよろしくお願いいたします。
関連トピックとしての追記。https://teratail.com/questions/119592
回答1件
あなたの回答
tips
プレビュー