質問

私は(私はLIBRARY_SEARCH_PATHSにリンクしています)/opt/local/libするGLEWを設定し、問題のライブラリーがあることを確認しました。

$ls /opt/local/lib

libGLEW.1.5.1.dylib libfreetype.a       libz.a
libGLEW.1.5.dylib   libfreetype.dylib   libz.dylib
libGLEW.a       libfreetype.la      pkgconfig
libGLEW.dylib       libz.1.2.3.dylib
libfreetype.6.dylib libz.1.dylib

が、Xcodeは私にリンカエラーが発生します。

library not found for -lGLEW

私はcmakeのとXcodeプロジェクトを生成していますので、(誰かが、フレームワーク、またはそのような何かとしてそれを追加することを示唆している場合)私は、明示的にXcodeのプロジェクトを変更する必要はありません。 Xcodeは(この質問のように)USER_HEADER_SEARCH_PATHS罰金を認識し、 ;なぜそれがここで働いていないのですか?

役に立ちましたか?

解決

おそらく、あなたのCMakeLists.txtにこのような何かを追加する?

find_library(GLEW_LIB GLEW /opt/local/lib)
if(NOT ${GLEW_LIB})
  message(FATAL_ERROR "Could not find GLEW")
endif()
target_link_libraries(myprogram ${GLEW_LIB} ...)

MYPROGRAMは、ライブラリにリンクする必要があり、ターゲットの実行ファイルの名前です。あなたがその実行に使用している他のライブラリで...置き換えます。

この方法CMakeのはあなたのためのライブラリパスの詳細を処理します。

他のヒント

Xcodeはそのたびに、現在のSDKのルートがリンカに渡されたばかりの実際のパスの前に付加される。(HEADER_SEARCH_PATHSまたはLIBRARY_SEARCH_PATHSのような)物事のこれらの種類を定義し、潜在的に複数のSDKののをに取り組んでいます。

だから、この作品を作るための一つの方法は、SDKにディレクトリを追加することです。たとえば、あなたは、Mac OS X 10.5 SDKで構築していると仮定すると、あなたのオプトインディレクトリを追加することができます:

ln -s /opt /Developer/SDKs/MacOSX10.5.sdk/opt

あなたのライブラリーは、今お使いのシステムに見られるます。

あなたがこれを行うにはしたくない場合は、

は、その後、私はCMakeのについては何も知らない(CMakeのを見て、それはあなたの実際のライブラリ用のライブラリ要件を生成するために取得する方法を見つける必要がありますので、私はすることができます「t)が存在し、あなたを助けます。あなたはUSER_HEADER_SEARCH_PATHSとHEADER_SEARCH_PATHSとの違いは、あなたの他の質問を再度参照理由でもある。

OTHER_LDFLAGSは、変数を構築して別の選択肢として、あなたもこのパスを指定することもできます:

OTHER_LDFLAGS=-L/opt/local/lib

このリンカーはは/ opt / local / libのと同様に、標準のパスを検索する原因となると、別のプロジェクトファイルを生成する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top