Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CMake链接GLEW_Cmake_Glew - Fatal编程技术网

使用CMake链接GLEW

使用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补

我的项目依赖于GLEW,并且是使用CMake构建的,因此我从这里获取FindGLEW.CMake,并在我的CMakeLists.txt中编写了
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_包要好得多。