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

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

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

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

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

Q&A

2回答

6859閲覧

VS2019におけるopencvを使用する際のリンカの設定

yoyoyoyoyo

総合スコア5

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

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

0グッド

0クリップ

投稿2019/10/07 06:15

編集2022/01/12 10:55

c++とopencvにより画像を生成するプログラムを書こうとしています.

環境は以下の通りです.

opencvのバージョン:opencv 3.1.0
visual studio 2019
windows 10
c++

ひとまず,opencvの追加ライブラリとインクルードディレクトリを設定して,helloworldのプログラムを動かそうとしています.
ソースコードは以下の通りです.

c++

1// TymmsMane.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 2// 3#pragma once 4 5 6#define CV_EXT "d.lib" 7 8 9#pragma comment(lib, "opencv_world310" CV_EXT) 10 11#include <iostream> 12#include<opencv2\opencv.hpp> 13 14int main() 15{ 16 std::cout << "Hello World!\n"; 17} 18 19// プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー 20// プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー 21 22// 作業を開始するためのヒント: 23// 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します 24// 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します 25// 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します 26// 4. エラー一覧ウィンドウを使用してエラーを表示します 27// 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します 28// 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します 29

一方,追加のインクルードディレクトリは
"C:\opencv\build\include"
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include"

追加のライブラリディレクトリは
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x64"
"C:\opencv\build\x64\vc14\lib"
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64"
"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x64"

と設定しています.

このとき,
ビルドしようとすると
"LNK1104: ファイル 'opencv_core300d.lib' を開くことができません。"というエラーが表示されています.

"C:\opencv\build\x64\vc14\lib"のディレクトリ内に"opencv_world310.lib"というライブラリファイルが存在しており,ソースコードでもそちらを開くように指定しているはずなのですが,なぜここで別のライブラリファイルを開こうとしているのかがわかりません.
(何回かopencvのバージョンを変えたので,以前のバージョンのときの設定が残っているのでしょうか?)

この場合,どうすれば意図と異なるライブラリファイルを開こうとすることを回避できるのでしょうか?
回答お待ちしております.

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

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

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

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

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

t_obara

2019/10/07 06:21

#ifdef _DEBUG #define CV_EXT "d.lib" デバッグビルドの際に、d.libを開くように設定しています。
yoyoyoyoyo

2019/10/07 06:24 編集

修正して,#define CV_EXT "d.lib"のみを残すように修正しました.
t_obara

2019/10/07 08:29

残したら、opencv_core300[d.lib]を開くようになりますよ?
yoyoyoyoyo

2019/10/07 08:42

それは,opencv_world310d.libを開こうとするとということですか? d.libファイルは開きたいのですが,開きたいファイルの種類が異なるので困っています
Bull

2019/10/07 09:54

本題とは関係ありませんが、追加のインクルードディレクトリと追加のライブラリディレクトリがおかしくありませんか? OpenCV 関連は必要ですが、VC のインクルードディレクトリとか Windows SDK 関連とかは必要無いはずですが。 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" これって、Visual Sdutio 2015 のディレクトリですよね。
t_obara

2019/10/07 10:02

> 開きたいファイルの種類が異なる すいません、意味が読み取れません。質問を読むと、opencv_world310.libを開きたいのに、opencv_world310d.libを開こうとして困っているように読めたのですが。
guest

回答2

0

偶々以前にダウンロードした、OpenCV 3.1 があったので、インストールして同梱の x64 のライブラリを使って Visual Studio 2019 でビルド/実行してみました。
結論から言いますと、問題なくビルド/実行できました。

以下大雑把な手順です。

  1. C:\opencv に OpenCV 3.1 をインストール。
  2. プロジェクトのプロパティを設定

  -追加のインクルード ディレクトリに "C:\opencv\build\include" を追加
-追加のライブラリ ディレクトリに "C:\opencv\build\x64\vc14\lib" を追加
3. ソースを追加
4. ビルド
5. コマンドプロンプトで PATH を設定して実行

プロジェクトは以前つくったコンソールアプリケーションの使い回しです。
多分、空のプロジェクトで作ったものです。
Windows 全体の PATH は変えたくなかったので、コマンドプロンプトのみで PATH を変えて実行しました。

プロジェクトを新規に作成しては如何でしょうか。
プロジェクトの設定に問題がある場合はそれで治るかもしれません。

投稿2019/10/07 11:05

Bull

総合スコア986

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

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

0

イメージ説明
プロパティのリンカー入力の項目にdebug,releaseそれぞれに追加のファイルを記載します。
なおdebugにはxxd.libを指定。(添付を参考のして)

投稿2019/10/07 07:57

MasahikoHirata

総合スコア3747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問