使用CMake链接GLEW
我的项目依赖于GLEW,并且是使用CMake构建的,因此我从这里获取FindGLEW.CMake,并在我的CMakeLists.txt中编写了使用CMake链接GLEW,cmake,glew,Cmake,Glew,我的项目依赖于GLEW,并且是使用CMake构建的,因此我从这里获取FindGLEW.CMake,并在我的CMakeLists.txt中编写了find_包(需要GLEW)。问题是,我在一台群集PC上工作,但有几个版本的GLEW可用。一个版本存储在非最新版本的/usr/lib中。最新版本存储在/opt/local/lib64中。这是我想要链接的版本。所以我在GLEW_库路径下添加了FindGLEW.cmake的路径。问题是makefile总是与旧版本链接,但我需要最新版本(1.7)来使用GL\u补
find_包(需要GLEW)
。问题是,我在一台群集PC上工作,但有几个版本的GLEW可用。一个版本存储在非最新版本的/usr/lib
中。最新版本存储在/opt/local/lib64
中。这是我想要链接的版本。所以我在GLEW_库路径下添加了FindGLEW.cmake的路径。问题是makefile总是与旧版本链接,但我需要最新版本(1.7)来使用GL\u补丁
,GL\u补丁
等。我可以告诉你如何强制CMake像FindBoost.CMake那样使用更新的版本吗。一个解决方案是删除旧的,但这不是一个选项。我还更改了GLEW_库列表中路径的顺序,但没有成功
在我的旧Makefile中,我刚刚编写了
LDDFLAGS=-L/opt/local/lib64-lGLEW
,因此路径是绝对清晰的,但现在使用CMake,我希望使用查找功能,但希望使用特定的版本。我使用它在特定位置静态链接到自定义编译的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关键字。这是非常不可移植的。使用find_包要好得多。