3

私のプロジェクトはGLEWに依存しており、CMakeで構築されているので、ここからFindGLEW.cmakeを取得しましたhttp://code.google.com/p/nvidia-texture-tools/source/browse/trunk/cmake/FindGLEW.cmake? r = 96find_package(GLEW REQUIRED)で、CMakeLists.txtに書き込みました。問題は、GLEWのいくつかのバージョンが利用可能であるクラスターPCで作業していることです。/usr/lib最新ではないバージョンが1つ保存されます。最新バージョンはに保存され/opt/local/lib64ます。これは私がリンクしたいバージョンです。そこで、GLEW_LIBRARYパスの下にFindGLEW.cmakeへのパスを追加しました。問題は、makefileが常に古いバージョンに対してリンクしていることですが、次のようなものを使用するには最新バージョン(1.7)が必要ですGL_PATCHESGL_PATCH_PARAMETERS等々。FindBoost.cmakeの場合のように、CMakeに新しいバージョンを使用させる方法を教えてください。1つの解決策は、古いものを消去することですが、これはオプションではありません。GLEW_LIBRARYリストのパスの順序も変更しましたが、成功しませんでした。

私の古いMakefileで書いLDDFLAGS = -L/opt/local/lib64 -lGLEWたので、パスは完全に明確ですが、CMakeでは検索機能を使用したいのですが、特定のバージョンを優先したいと思います。

4

1 に答える 1

2

これを使用して、特定の場所にあるカスタム コンパイル済み GLEW ライブラリに静的にリンクします。

#GLEW libraries
add_library(glew_static STATIC IMPORTED)
set_target_properties(glew_static PROPERTIES
    IMPORTED_LOCATION /home/ryan/DevLibrary/glew-1.9.0/lib/libGLEW.a)
target_link_libraries(smolder glew_static)

この位置で、あなたは削除することができます

find_package(GLEW REQUIRED)

これは共有ライブラリでも使用できます。add_library から STATIC キーワードを削除するだけです。

于 2012-12-19T21:18:46.857 に答える