2015-08-23 64 views
0

我想编译一些在Linux中使用Cmake编写的(由其他人)的C++代码,并且我遇到了CMakeLists.txt中的SET(CMAKE_CXX_LINK_FLAGS "-framework OpenGL")行。我从来没有见过-framework作为命令行选项,并且似乎无法在任何posts/websites/cmake文档中找到它。当然,我收到错误c++: error: OpenGL: No such file or directoryc++: error: unrecognized command line option '-framework'-cmake中的框架命令行选项

有人知道框架是做什么的吗? Cmake在尝试使用它来构建/配置VTK时遇到了OpenGL问题,但是我认为我解决了它,因为它结束了工作。 VTK构建起作用而不是这样有意义吗?无法识别的框架选项错误是否是缺乏OpenGL的结果?或者他们是分开的?

+2

这看起来特定于Apple http://chaitanyav.github.io/2014/07/13/getting-starting-with-opengl/ – stark

+2

是的,'-framework'是Mac OS。框架就像更复杂的图书馆机制。除了库本身之外,它们还可以包含头文件,资源等,它们也可以被版本化。 –

回答

1

-framework选项被Apple clang接受;框架是将头文件和库封装在特定目录结构中的一种方法。

无条件指定这些选项的CMake文件是不可移植的;一个能够跨平台工作的更好的解决方案是使用find_package命令。你可以阅读更多关于如何使用find_packagehere

+0

谢谢。你知道是否有一个find_package命令与-framework选项的功能相同,或者这是不可能的?我不觉得我理解了框架的内部工作方式,足以知道如何使用find_package来完成相同的事情 – user3345626