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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

0回答

764閲覧

openCV(C++ )のdebugで.exeファイルを求められる

snakaz

総合スコア1

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/10/19 08:16

visualstudioでopenCVを起動させています。

使い始めて間もなく、初歩的な質問かもしれませんがよろしくお願いします。

現在、外部接続のカメラをopenCVで制御をするプログラムを作っています。(ximea社)
コンパイル自体はうまく動作しているのですが、実行しようとすると

「C:/users/source/repos/ファイル名/x64/Debug/ファイル名.exeを開始できません」

というエラーが出てきます。
今まで、openCVで何度か簡単な画像処理をしていましたが、このようなエラーは初めて出てきました。

debugファイル内の.exeはどのようなときに必要なのでしょうか?
また、このエラーの対処法をご存じの方がいたら教えていただきたいです。

追加の依存ファイルでdebug用のライブラリは入力してあります。

C++

1#include <stdio.h> 2#include "xiApiPlusOcv.hpp" 3 4using namespace cv; 5using namespace std; 6 7int main (void) 8{ 9 try 10 { 11 xiAPIplusCameraOcv cam; 12 cam.OpenFirst(); 13 cam.SetExposureTime(10000); //10000 us = 10 ms 14 cam.StartAcquisition(); 15 16 // Read and convert a frame from the camera 17 Mat cv_mat_image = cam.GetNextImageOcvMat(); 18 // Show image on display 19 cv::imshow("Image from camera",cv_mat_image); 20 21 cam.StopAcquisition(); 22 cam.Close(); 23 } 24 catch(xiAPIplus_Exception& exp) 25 { 26 exp.PrintError(); // report error if some call fails 27 } 28}

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

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

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

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

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

fana

2021/10/19 08:22

> C:/users/source/repos/ファイル名/x64/Debug/ファイル名.exe なるファイルは実際に存在しているのでしょうか?
yominet

2021/10/19 14:17 編集

もとはスクリプト言語使いか、そもそもプログラム初心者さんかな 『C:/users/source/repos/ファイル名/x64/Debug/ファイル名.exe』 このパスからの推測ですが、その『ファイル名』こそが あなたが作成しているソリューション名かつプロジェクト名でもあると思われます。 この推測が正解ならば・・・ですが >debugファイル内の.exeはどのようなときに必要なのでしょうか? そのファイルが、一番重要なファイルです。 ザックリ言うと、あなたが現在VisualStudioで作業していることは、 『あなたがやりたいことを詰め込んだ「ファイル名.exe」という実行ファイルを作成する』 ということです。 デバッグ・リリースの違いはあっても、「実行」するとは、このファイル.exeを実行することになります。 >>「C:/users/source/repos/ファイル名/x64/Debug/ファイル名.exeを開始できません」 >というエラーが出てきます。 という状態から ①コンパイル(細かいこといえばビルドか)に失敗してる  #ビルド対象から外れていたり ②成功してるが、exeが消滅している  #ウィルス対策入れてると、生成直後にウィルス候補として消されることがある ③ビルドに成功したファイルの生成場所と、実行ファイルしたいファイルパスがずれている  #プロパティをいじり間違えていたり といった可能性も考えられます。 ここまで長文書いておいてなんですが、まずはfanaさんのアドバイスに従ってファイルの存在を確認しましょう。
snakaz

2021/10/20 05:40

本当に初歩的な質問だと思うのですが、丁寧に教えていただきありがとうございます。 すみません、私自身プログラミングの初心者なのですが、ある事情で任されてしまったので調べながら行っている状態です。 .exeというファイルは存在していません。 このファイルは実行すると同時に生成されるものなのでしょうか? それとも、あらかじめ用意しておかなければならないのでしょうか?
fana

2021/10/20 05:48 編集

↑の方が説明されていますが, あなたのプログラムのビルドが成功したときの成果物が exe です. (exe を作るためにプログラムコードをせっせとこしらえている) 頑張ってプログラムを書きます → ビルドします(コンパイルだのリンクだの) → 成功した結果として,exe が生成されます → exe を実行します っていう話. だから,あなたが「実行しろや」と言っても,その時点で exe が無かったら当然実行できない.
snakaz

2021/10/20 08:22

回答ありがとうございます。 おかげで、仕組みを理解することができました。 それでは、このエラーコードが出ているときはビルドがうまくいっていないということになると思うのですが、コンパイルは問題なく完了しています。 ここから、考えられる原因などはあるのでしょうか? 本当に無知で申し訳ないのですが教えていただきたいです。
fana

2021/10/20 08:34

> コンパイルは問題なく完了しています。 「コンパイル」と「ビルド」は意味が違うのですが,「ビルド」してますか? しているなら,Visual Studio の 出力ウィンドウに 「ビルド開始」とか「コードを生成中…」とか表示されていくハズです. で,成功したときには,出力した exe のパスも表示されるハズです.それが, > C:/users/source/repos/ファイル名/x64/Debug/ファイル名.exe と一致していますか? 異なっている場合, > ③ビルドに成功したファイルの生成場所と、実行ファイルしたいファイルパスがずれている が原因かと.
snakaz

2021/10/20 09:16 編集

回答ありがとうございます。 ビルドが成功していないようでした。 .libファイルをうまく読み込めていないのが原因だったようなのです。 リンカーの追加の依存ファイルに.libファイルを置いたのですが、そのライブラリを読み込めないというlink1104のエラーが出てしまいます。 ライブラリディレクトリにその.libファイルのディレクトリを追加しましたが、エラーは解消されず、逆にまたLINK2019のエラーが出てしまいます。 ライブラリのパスの通し方がおかしいのはわかるのですが、どこが間違えているのかわからないので教えていただきたいです。 fanaさんの説明とても分かりやすくて本当に助かっています。
fana

2021/10/20 09:30

「追加のライブラリディレクトリ」に,libのあるフォルダのパスを書き 「追加の依存ファイル」に lib のファイル名を書けばよいと思うのですが, そのようにしているのにダメだという場合には,ちょっとわかりません.
yominet

2021/10/20 09:55

ビルドが失敗していると確認できたのであれば、ビルドのエラーのログを質問に追加しましょう。
snakaz

2021/10/21 02:15

yominetさん、ありがとうございます。 「未解決の外部シンボルが関数~で参照されました」 というログが出ています。 エラー元のファイル拡張子が「.obj」となっているのですが、これはライブラリとは別物なのでしょうか? 初めて見る拡張子で混乱しております。 このファイルをリンクしようとしたのですが、ダウンロードしたソフトウェアパッケージ(ximea社)に入っていなかったので果たしてどのような役割を果たしているのかもわかりません。 関数などが入っているのだと思うのですが、それ以上の詳細が不明なので教えていただきたいです。 fanaさん、何度も本当にありがとうございます。
fana

2021/10/21 02:40

何か情報を出すとまずい背景事情があるのでしょうか? ●そういう事情が特にないならば: 出てきたエラーメッセージなどは要約や改変等をせずにそのまま提示してください. 「未解決の外部シンボル」とのことですが,「何が」未解決なのかが表示されていないのでしょうか? それがいかにも "xiなんとか" みたいな名称だったりするならば,「xiなんとかいうlibの参照設定に失敗しているのでは?」とか考えることができますし, "cvなんとか" であれば,同様に「OpenCV のlibの参照設定に失敗しているのでは?」と想定できます. しかし,「何かが未解決」とだけ言われると,そういった推測もできません. 設定状態等に関しても同様です. 中途半端に文章で伝えるよりも,項目の状態を包み隠さず情報として提示した方がすんなりと伝わるでしょう. ●何らかの事情がある場合は: (というか無い場合でもまずは真っ先にそうするべきだが) あなたに 任せた人 に相談する方が早いように思われます.(その相手に対しては情報を開示できるのでしょうから) 部分的な情報だけからの想像では外れている可能性も高くなりますから,我々が「こうじゃない?」とか言ってみる度に,あなたに無駄な作業が生じることにもなりかねません.
fana

2021/10/21 02:44

#もちろん,ぼかすべき事柄(例えば個人名みたいなのがパスからわかるみたいな物)については,ぼかすべきですが.
snakaz

2021/10/21 05:21

回答ありがとうございます。 おっしゃる通りです。 自分の力不足を実感しました。 長々とお付き合いいただきありがとうございました。
fana

2021/10/21 07:44

> ●何らかの事情がある場合 の側だということでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問