2017-07-18 22 views
2

dlibをインストールするために、私はこのチュートリアルに従いました:http://www.pyimagesearch.com/2017/03/27/how-to-install-dlib/。 私はMac OS X 10.12.5でPython 3.5を使用しています。 実行中CMake - パッケージを作るための問題をインストールする

$ brew install cmake 
$ brew install boost 
$ brew install boost-python --with-python3 

エラーなく動作します。
しかし、私はpip install dlibでdlibをインストールしようとします。 (完全なエラーを貼り付けたくない)、このリンクを参照してください、完全な誤りについては

The C compiler 
    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc" 
    is not able to compile a simple test program. 
error: cmake configuration failed 

ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64 

:私は、エラーが発生している https://gist.github.com/alexattia/3e98685310d90b65031db640d3ea716a

私が作るしようとしたとき、エラーを辿り後

Linking C executable cmTC_05e45 

    /usr/local/Cellar/cmake/3.8.2/bin/cmake -E cmake_link_script 
    CMakeFiles/cmTC_05e45.dir/link.txt --verbose=1 


    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc 
    -Wl,-search_paths_first -Wl,-headerpad_max_install_names 
    /usr/local/opt/qt/lib CMakeFiles/cmTC_05e45.dir/testCCompiler.c.o -o 
    cmTC_05e45 

完全なトレースのために展開します:https://gist.github.com/alexattia/1e54ffb87c9eb4c811033f5cadd90331

を私はXCodeのを再インストール(からDLIBは、手動で、私は、これは持っていますアップルストア)とCMake(ダウンロードしたページから3.8.2)、Qt CreatorをインストールしてクリーンなバージョンのQtをインストールしましたが、私はまだ同じエラーがあります。
私はcondaでインストールしようとしましたが、インストール後には、私はまだpythonでモジュールを持っていません。

ありがとうございました。

+0

あなたの*具体的な質問は何ですか? –

+0

これを修正してdlibをインストールするにはどうすればよいですか? –

+1

あなたのログの重要なエラー行は、 'ld:ファイルをマップできません、errno = 22ファイル '/ usr/local/opt/qt/lib' for architecture x86_64'です。ポスト**自体)。誰かがディレクトリ '/ usr/local/opt/qt/lib'をリンカに渡し、リンカはそれをリンクするファイルとして扱います。おそらく、それを指定する環境変数があります。 – Tsyvarev

答えて

1

はあなたのコメント:

確かに、私の.bash_profileに、私は輸出LDFLAGSの=を持っている "は/ usr/localは/ opt/QT/libに"、 輸出CPPFLAGSの= "は/ usr/local/opt/qt/include "、export PATH ="/usr/local/opt/qt/bin:$ PATH "と入力します。 しかし、たとえそれをコメントしながら、私はまだどちらも理にかなっている、と 最初のものは、あなたに関係する原因リンカの障害であるLDFLAGSCPPFLAGSにあなたの割り当ての

同じエラーを持っています。

設定されている場合、環境変数LDFLAGSの値は、ビルドシステム によってリンケージオプションとして解釈されます。同様に環境変数 CPPFLAGSの値が設定されている場合は、プリプロセッサオプションとして解釈されます。

/usr/local/opt/qt/libはリンクオプションではなく、/usr/local/opt/qt/include はプリプロセッサオプションではありません。これらは単にディレクトリ名です。 がオプションではないリンカー(またはプリプロセッサ、またはコンパイラ)に渡す引数は、ツールによって入力ファイルとして解釈される です。したがって、リンカーに という/usr/local/opt/qt/libがあなたのリンケージへの入力ファイルであると信じさせました。

ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64 

は、それが/usr/local/opt/qt/libがすべてではない ファイルであることを発見した場合、リンカが言うことです。

おそらく、/usr/local/opt/qt/libが であることをリンカーに指示するには、リンケージで必要なライブラリを検索するディレクトリを指定することをお勧めします。 意図があることを表現連携オプション:ここで

-L/usr/local/opt/qt/lib 

あなたは/usr/local/opt/qt/include は、それがヘッダファイルを検索するディレクトリであることをそのプリプロセッサを指示するつもり同様GCC options for linking

です。それを表現するためのプリプロセッサ オプションは次のとおりです。ここで

-I/usr/local/opt/qt/include 

がある GCC options for preprocessing

それはあなたがやっているように、あなたのbashのログインプロファイルにコンパイルやリンクのオプション を指定して、異常とお勧めできません。ビルドシステムの入力ファイル(makefile、cmakelistsファイルなど)に のオプションを指定するか、 の引数としてビルドシステムの設定を指定します。

LDFLAGS=-L/usr/local/opt/qt/lib 
CPPFLAGS=-I/usr/local/opt/qt/include 

を、あなたのbash_profileでこれらの環境設定を行った後、彼らは 唯一の新しいログインシェルで有効になります。しかし、あなたは あなたのbashのログインプロファイルで指定することを主張した場合は、指定する必要があります。

+0

ありがとうございました。出来た! あなたは言っています: "実行しているように、あなたのbashログインプロファイルにコンパイルまたはリンクオプションを指定するのは異常でお勧めできません。何がお勧めですか?プロファイルで使用する入力ファイルを見つけるにはどうすればよいですか? –

0

私は同様の問題を抱えていましたが、それがブーストの原因であることが分かりました。

これを試してください。

brew uninstall boost-python 
    brew uninstall boost 
    brew install boost-python --with-python3 --without-python 
    pip3 install dlib 
+0

ありがとうございますが動作しません。私はまだ同じエラーがあります。 'ld:ファイルをマップできません、errno = 22ファイル '/ usr/local/opt/qt/lib'はアーキテクチャ用です x86_64' –

関連する問題