2016-10-01 10 views
3

Homebrewを使用してdlibをインストールしました。Xcode C++コンソールアプリケーションでdlibを使用する方法

brew install dlib 

Xcodeでdlibを使用するC++プロジェクトを作成するにはどうすればよいですか?いくつかのビルド設定を試しました。ただし、動作しません。

  • ヘッダ検索パスに/usr/local/Cellar/dlib/19.1_2/includeを追加
  • が、私はこれらのエラーを持っている-ldlibに他のリンカフラグ

を追加ライブラリ検索パスに/usr/local/Cellar/dlib/19.1_2/libを追加

Undefined symbols for architecture x86_64: "_cblas_dgemm", referenced from: dlib::blas_bindings::cblas_gemm(dlib::blas_bindings::CBLAS_ORDER, dlib::blas_bindings::CBLAS_TRANSPOSE, dlib::blas_bindings::CBLAS_TRANSPOSE, int, int, int, double, double const*, int, double const*, int, double, double*, int) in main.o "_cblas_saxpy", referenced from: dlib::blas_bindings::cblas_axpy(int, float, float const*, int, float*, int) in main.o "_cblas_sscal", referenced from: dlib::blas_bindings::cblas_scal(int, float, float*) in main.o "_dgesvd_", referenced from: dlib::lapack::binding::gesvd(char, char, int, int, double*, int, double*, double*, int, double*, int, double*, int) in main.o ld: symbol(s) not found for architecture x86_64 

打ち鳴らす:エラー:リンカコマンドはデフォルトでは、終了コード1(呼び出しを参照するために-vを使用)

+0

あなたがソースコードからコンパイルしようとしたのですか? – Evgeniy

+0

@Evgeniyはい、試しました。私は同じ結果を得た。プログラムをコンパイルするときにdlibがBLASにアクセスしようとしていることがわかりました。これはmacOSのAccelerate.frameworkで提供されています。プロジェクトにそのフレームワークを追加した後、問題は解決されました。 – fivetech

+0

私は同じ問題を抱えています。私はcmakeを使ってコマンドラインでコンパイルしようとしています。あなたはこれをcmakeファイルに追加する方法を知らないでしょうか? –

答えて

3

で失敗した、自作は、任意のBLASライブラリなしDLIBをインストールします。私はAccelerate.frameworkをバイナリファイルにリンクしてこの問題を解決しました。

Accelarate.frameworkはアップルが提供しています。これには、dlibに必要なものすべてが含まれています。さらに詳しい情報: https://developer.apple.com/reference/accelerate

プロジェクトにそのライブラリを追加するためには、

  1. は、プロジェクトナビゲータ(左側)でプロジェクト名を選択してください。
  2. エディタに表示されない場合は、「プロジェクトとターゲットの一覧を表示」をクリックし、ターゲットバイナリを選択します。

    enter image description here

  3. 、以下に示す "フェーズを構築する" を選択します。 enter image description here
  4. 「ライブラリとバイナリをリンクする」をクリックし、「アイテムを追加」アイコンをクリックします。
  5. Accelerate.frameworkを検索して追加します。
  6. ステータスを「必須」に変更します。また

あなたはDLIBをアンインストールし、brew install dlib --with-openblasコマンドでDLIBをインストールした場合、それが動作する可能性があります。しかし、私はまだそれをテストしていません。あなたbrew info openblas場合ところで

、自作はopenblasについて警告:

macOS already provides this software and installing another version in parallel can cause all kinds of trouble.

関連する問題