現在、Visual Studioで以下のプログラムをビルドしようとしているのですが、
「C4819:ファイルは現在のコードページ(932)で表示できない文字を含んでいます。ファイルをUnicode形式で保存してください。」
という警告が出てきており、うまくビルドできません。
他にもLNK2001:「外部シンボル未解決」というエラーもいくつか表示されていますが、まずC4819の警告を解消したいと考えています。
face_detection.cpp
1 2#include "stdafx.h" 3#include "stdio.h" 4#include "iostream" 5#include "opencv2/core.hpp" 6#include "opencv2/highgui.hpp" 7 8#define X_SIZE 1920 9#define Y_SIZE 1080 10 11using namespace std; 12using namespace cv; 13 14cv::Mat img; 15 16int main(int argc, char *argv[]) 17{ 18 img = imread("image/face1.jpeg", 1); 19 if (img.data == NULL) 20 return -1; 21 22 imwrite("image/face1-1.jpeg", img); 23 24 return 0; 25} 26
いくつかのサイトを参考にし、
・プログラム中の日本語コメントがCP932と認識されている原因の可能性があるため、削除する。
・ビルドする際にDebugからReleaseに変更する。
というような対処をしましたが、うまくいきませんでした。(エラーの数は減ったのですが...)
その他のサイトを見ると、LNK(リンカエラー)は対応するライブラリが追加されていないことを示している。
と書かれてありましたが、ライブラリにはスタティックライブラリ、ダイナミックライブラリ、.NETのクラスライブラリの3種類があり、一般的なのがダイナミックライブラリでそれには、
1. ダイナミックリンクライブラリファイル(.dll)
2. ライブラリファイル(.lib)
3. ヘッダファイル(インクルードファイル)(*.h)
があることが書かれてありました。(参考url:
http://imagingsolution.blog107.fc2.com/blog-entry-231.html)
そのため、インクルードするヘッダーファイルに問題があるのでしょうか?
このエラーや警告の解消を試みている数時間前は「imread,imwriteの識別子が見つかりません。」
というエラーも表示されていました。
もしかしたらimread,imwrite関数を使えるようにするためのヘッダーファイルをインクルードしていない、もしくはヘッダーファイルをビルドしようとしているソースファイルのフォルダ内に入っていない。
という問題があるのかなと考えています。
しかし、どのようなヘッダーファイルを入れればいいのか、どのようにパス指定をすればいいのかわからないため、わかっていただける方にご教授願いたいと思います。
よろしくお願いします。
統合開発環境:Visual Studio Professional 2013
言語:C++
OS:Windows
画像認識のライブラリ:OpenCV(ver3.1.0)
自動化ツール:CMake
回答2件
あなたの回答
tips
プレビュー