OpenCV
をOSX 10.7.5/MacbookPro 2.5 GHz Intel Core 2 DuoでQT
と動作させるように設定しようとしています。私はここでいくつかの関連する質問(How to link opencv in QtCreator and use Qt libraryとHow do you set up OpenCV with QT in OSX?)を見たことがありますが、詳細はあまりありません。 QTサイトと私のウェブ検索では、すべての情報がWindowsやLinuxのようです。OSXでQTでOpenCVを設定する
私の設定とコードは以下のとおりです。コードを実行すると、エラーが発生します::-1: error: symbol(s) not found for architecture x86_64
パスが間違っているか、またはx86_32用にopenCVをビルドしている可能性があるため、何も見つかりませんか?後者をチェックする方法はありますか?私は構成とセットアップのプロセスの一部ではあまり精通していません。
アップデート2
コンソール出力は以下の通りです - おそらくエラーは明白ですか?
が構築され、ソースからOpenCVの(2.4.6)の最新バージョンをインストールし、それをテストした:;私はこれまで(DR TL)は何
02:44:38: Running steps for project RP_openCV_01... 02:44:38: Configuration unchanged, skipping qmake step. 02:44:38: Starting: "/usr/bin/make" clang++ -headerpad_max_install_names -mmacosx-version-min=10.6 -o RP_openCV_01 main.o -L/usr/local/lib -1ibopencv_core.2.4.6,dylib -1ibopencv_imgproc.2.4.6.dylib -F/Users/rise/Qt5.0.2/5.0.2/clang_64/lib -framework QtCore clang: warning: argument unused during compilation: '-1ibopencv_core.2.4.6,dylib' clang: warning: argument unused during compilation: '-1ibopencv_imgproc.2.4.6.dylib' Undefined symbols for architecture x86_64: "cv::_InputArray::_InputArray(cv::Mat const&)", referenced from: _main in main.o "cv::namedWindow(std::string const&, int)", referenced from: _main in main.o "cv::Mat::deallocate()", referenced from: _main in main.o "cv::imread(std::string const&, int)", referenced from: _main in main.o "cv::imshow(std::string const&, cv::_InputArray const&)", referenced from: _main in main.o "cv::waitKey(int)", referenced from: _main in main.o "cv::fastFree(void*)", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [RP_openCV_01] Error 1 02:44:38: The process "/usr/bin/make" exited with code 2. Error while building/deploying project RP_openCV_01 (kit: Desktop Qt 5.0.2 clang 64bit) When executing step 'Make'
いくつかのコマンドラインプログラム。
- はQTの最新バージョン(5.1)をインストールし、
(下記)プロジェクトファイル
QT += core QT -= gui TARGET = RP_openCV_01 CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp INCLUDEPATH += /usr/local/include\ LIBS += -L/usr/local/lib
-
内のパスを指定したなど、すべての例を実行することができています
- は、以下のプロジェクト設定でパスを指定しようとしました。私は
/usr/local/include
と/usr/local/lib
を追加
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
// read an image
cv::Mat image= cv::imread("dog.jpg");
// create image window named "My Image"
cv::namedWindow("My Image");
// show the image on window
cv::imshow("My Image", image);
// wait key for 5000 ms
cv::waitKey(5000);
return 1;
}
アップデート1
もう一つは、私はチュートリアルに基づいてみましたmain.cppに、単純なコード例libs iを指定することでしたn QTプロファイル(下の画像のように)。チュートリアルはWindowsのためのものでしたが、OSXが異なるかどうか、どのように違うのか分かりませんでした。 Windowsの例では-1ibopencv_core246d
ですが、私は分離していてもなくても、 "d"を付けずに試してみました。もちろん、libのフルネームは "libopencv_core.2.4.6.dylib"です。
これらの重要な詳細情報は、常に私を引き上げますが、チュートリアルではこのことがよく分かっています。
LIBS += -L/usr/local/lib \
-1ibopencv_core.2.4.6 \
-1ibopencv_imgproc.2.4.6 \
-1ibopencv_features2d.2.4.6 \
-1ibopencv_highgui.2.4.6
デフォルトでは、OpenCV 2.4.6はネイティブアーキテクチャ用に構築されています(x86_64である必要があります)。 「実行」と言うと、コードをどのようにして起動しますか? DYLD_LIBRARY__PATHにopencv .dylibファイルへのパスが含まれていないという事実に関連している可能性があります。 – sansuiso
@sansuiso - QTCreatorを使用してビルドして実行しています。私は私の質問に更新を加えて、どのようにlibsをインクルードするのかを説明しようとしました。 –
これは10.8で[this .pro file](https://gist.github.com/bestimmaa/7033447)を使って私のために働いていましたが、10.9で新しいdevマシンを設定して以来、私は同じエラーを受けます。 – Christoph