###前提・実現したいこと
VC++2013&OpenCv3で画像処理ソフトを作成しています。
開発環境では、問題なく実行できるのですが、
実行環境でエラーが発生します。
■開発環境
・win7 pro sp1 64bit
・vc2013
・Nugetにて、opencv3をインストール (ver3.0.0.1)
・プラットフォーム Win32
■実行環境
・win10 64bit or win7 32bit
・vc2013
###発生している問題・エラーメッセージ
win10のPCに、プロジェクト毎コピーし、Visual Studioでビルド&実行した所、
ハンドルされない例外が 0x5290D4A1 (opencv_core300d.dll) で発生しました(アプリ名.exe 内): 0xC000001D: Illegal Instruction。
main関数に入る前に、上記エラーが発生しました。
win7 32bitのPCでも、同じdll名でエラーが発生しています。
###試したこと
・debug,Releaseモード、いずれもエラー
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/20 08:43
回答3件
0
ベストアンサー
Unhandled exception at 0x52f9e470 in project1.exe : 0xC000001D : Illegal instruction
Some new SSE instruction are not implemented at AMD processors e.g. So you can fix this by rebuilding opencv without SSE support.
NuGetで導入したバイナリ(.dll類)が、対象マシンのCPUがサポートしていない命令を呼び出している可能性があるようです。この場合はCPUに合わせてソースからビルドの必要があるようです。
追記:ハード寄りの知識はないため、以下、見当違いでしたらすみません。
OpenCV3 3.0.0.1パッケージを導入したのであれば
「~Built only for vc12, with OpenMP, AVX, as DLLs,~」と記載ありますのでAVX
命令を使用していると思われます。
また、以下よりAVX命令は第2世代i7/i5以降でのみ対応しているようです。
インテル® SSE およびインテル® AVX 世代 (SSE2、SSE3、SSSE3、ATOM_SSSE3、SSE4.1、SSE4.2、ATOM_SSE4.2、AVX、AVX2、AVX-512) 向けのインテル® コンパイラー・オプションとプロセッサー固有の最適化
以上より、実行環境のCPU(i5)がこれ以前のものである可能性はないでしょうか?
投稿2017/06/20 09:00
編集2017/06/20 10:00総合スコア38262
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/20 09:11
2017/06/20 09:49
2017/06/20 09:52
2017/06/20 10:01
2017/06/21 01:17
2017/06/21 01:36
2017/06/21 02:16
2017/06/21 02:55 編集
2017/06/21 06:18
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/20 09:32
2017/06/20 09:36
退会済みユーザー
2017/06/20 09:46
2017/06/20 09:50
0
■開発環境
・win7 pro sp1 64bit
■実行環境
・win10 64bit or win7 32bit
で、
CPUモード(ソリューションプラットフォーム):AnyCPU でやってたりしませんか?
且つ、参照したDLLが64ビット用になっていませんか?
’
32bit で動作させたい場合は、
CPUモード:x86(32bit)
参照DLL:とうぜん、x86(32bit)用とします。
全てが、.NET で作成されていて、x86 / x64 の自動判別が上手く動作する場合は、
AnyCPUでもいけますが、外部参照DLLを使う場合は、面倒になりがちですので、
私の場合は、CPUモード(ソリューションプラットフォーム) を、x86 / x64 どちらか指定しています。
’
追記
ソリューションに、複数プロジェクトが含まれる場合は、
構成マネージャーにて、プラットフォームを統一しておきます。(x86/x64の別)
AnyCPUしか出て来ない場合は、新規で、プラットフォームを追加します。
VB.NET と C# 混在などのミックスドプログラミングの場合は、別途考慮あり。
投稿2017/06/20 08:55
編集2017/06/20 09:02総合スコア2028
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/20 09:07
2017/06/20 09:37
2017/06/20 09:52
2017/06/21 02:19
2017/06/21 02:46
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。