首页 > 开发 > C++ > 正文

ld: library not found for -lGL on Mac

2017-09-11 21:20:41  来源: 网友分享

https://github.com/openglredbook/examples 下载了OpenGL编程指南的样例代码,但是运行的时候报错,在build文件夹运行cmake .. 报错如下(运行环境是Mac):

-- Try OpenMP C flag = [-fopenmp=libomp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [ ]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-fopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [/openmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-Qopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-openmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-xopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [+Oopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-qsmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP C flag = [-mp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-fopenmp=libomp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [ ]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-fopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [/openmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-Qopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-openmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-xopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [+Oopenmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-qsmp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Try OpenMP CXX flag = [-mp]-- Performing Test OpenMP_FLAG_DETECTED-- Performing Test OpenMP_FLAG_DETECTED - Failed-- Could NOT find OpenMP (missing:  OpenMP_C_FLAGS OpenMP_CXX_FLAGS)-- Using Cocoa for window creation-- Using NSGL for context creation-- Building GLFW only for the native architecture-- Configuring done-- Generating done

然后运行make 报错如下:

[  6%] Built target vermilion[ 15%] Built target glfw[ 16%] Linking CXX executable ../bin/12-imageprocessingld: library not found for -lGLclang: error: linker command failed with exit code 1 (use -v to see invocation)make[2]: *** [../bin/12-imageprocessing] Error 1make[1]: *** [CMakeFiles/12-imageprocessing.dir/all] Error 2make: *** [all] Error 2

在网上搜了好久但是都没有解决,大家知道这是怎么回事吗?

解决方案

问题已解决,CMakeLists.txt 文件26行https://github.com/openglredbook/examples/blob/master/CMakeLists.txt#L26 处,删除GL rt dl即可make成功。