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

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

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

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

OpenCV

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

C++

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

Q&A

1回答

1208閲覧

未解決の外部シンボル

daisuke0203

総合スコア13

Visual Studio

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

OpenCV

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

C++

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

0グッド

0クリップ

投稿2018/12/18 13:23

前提・実現したいこと

OpenCVのarucoモジュールを使いたい.

発生している問題・エラーメッセージ

引用テキスト

error LNK2019: 未解決の外部シンボル "struct cv::Ptr<class cv::aruco::Dictionary> __cdecl cv::aruco::getPredefinedDictionary(enum cv::aruco::PREDEFINED_DICTIONARY_NAME)" (?getPredefinedDictionary@aruco@cv@@YA?AU?$Ptr@VDictionary@aruco@cv@@@2@W4PREDEFINED_DICTIONARY_NAME@12@@Z) が関数 main で参照されました。 1>aruco5.obj : error LNK2019: 未解決の外部シンボル "public: static struct cv::Ptr<struct cv::aruco::DetectorParameters> __cdecl cv::aruco::DetectorParameters::create(void)" (?create@DetectorParameters@aruco@cv@@SA?AU?$Ptr@UDetectorParameters@aruco@cv@@@3@XZ) が関数 main で参照されました。 1>aruco5.obj : error LNK2019: 未解決の外部シンボル "void __cdecl cv::aruco::detectMarkers(class cv::_InputArray const &,struct cv::Ptr<class cv::aruco::Dictionary> const &,class cv::_OutputArray const &,class cv::_OutputArray const &,struct cv::Ptr<struct cv::aruco::DetectorParameters> const &,class cv::_OutputArray const &,class cv::_InputArray const &,class cv::_InputArray const &)" (?detectMarkers@aruco@cv@@YAXAEBV_InputArray@2@AEBU?$Ptr@VDictionary@aruco@cv@@@2@AEBV_OutputArray@2@2AEBU?$Ptr@UDetectorParameters@aruco@cv@@@2@200@Z) が関数 main で参照されました。 1>aruco5.obj : error LNK2019: 未解決の外部シンボル "void __cdecl cv::aruco::drawDetectedMarkers(class cv::_InputOutputArray const &,class cv::_InputArray const &,class cv::_InputArray const &,class cv::Scalar_<double>)" (?drawDetectedMarkers@aruco@cv@@YAXAEBV_InputOutputArray@2@AEBV_InputArray@2@1V?$Scalar_@N@2@@Z) が関数 main で参照されました。 1>C:\Users\daisuke\Documents\c++\aruco5\x64\Debug\aruco5.exe : fatal error LNK1120: 4 件の未解決の外部参照

該当のソースコード

c++

1#include "pch.h" 2#include <iostream> 3#include<opencv2/aruco/dictionary.hpp> 4#include<opencv2/videoio.hpp> 5#pragma comment(lib, "opencv_world320d.lib") 6#include<opencv2/core.hpp> 7#include<opencv2/highgui.hpp> 8#include<opencv2/imgcodecs.hpp> 9#include<opencv2/imgproc.hpp> 10#include<opencv2/aruco/aruco.hpp> 11 12int main() 13{ 14 cv::VideoCapture inputVideo; 15 inputVideo.open(0); 16 17 cv::Mat cameraMatrix, distCoeffs; 18 19 cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250); 20 21 while (inputVideo.grab()) { 22 cv::Mat image, imageCopy; 23 inputVideo.retrieve(image); 24 image.copyTo(imageCopy); 25 26 std::vector<int> ids; 27 std::vector<std::vector<cv::Point2f>> corners; 28 cv::aruco::detectMarkers(image, dictionary, corners, ids); 29 30 if (ids.size() > 0) { 31 cv::aruco::drawDetectedMarkers(imageCopy, corners, ids); 32 33 } 34 35 cv::imshow("out", imageCopy); 36 char key = (char)cv::waitKey(30); 37 if (key == 27) 38 break; 39 } 40 41} 42

試したこと

リンカーの確認はしましたが出来ません.
C:\opencv\build\include\opencv2\aruco
C:\opencv\build\x64\vc14\lib

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

OpenCVはよこにおいといて、

このエラーは、必要なライブラリの設定がないために発生しているエラーです
ビルド方法が間違っていないか見直しましょう

投稿2018/12/18 15:14

y_waiwai

総合スコア87719

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

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

daisuke0203

2018/12/19 08:16

解答ありがとうございます。 必要なライブラリとは具体的に何を指しているのでしょうか?
daisuke0203

2018/12/19 08:25

もともと14件を未解決の外部シンボルがありましたが, 以下の2つを加えることで4件まで減りました. opencv_world320.lib opencv_world320d.lib libファイルには上記の2つのlibしかありません. ほかに必要なlibがあるのでしょうか?
pepperleaf

2018/12/19 11:55

opencv_world320.lib はどうやって入手しましたか? 標準の OpenCV には、aruco は含まれていないようですが、、、。
daisuke0203

2018/12/20 09:23

解決しました! CMakeを使ってOpenCV contribのビルトをしたら出来ました. 皆さんアドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問