linux opengl安装教程,Linux下OpenGL的安装与cmake编译OpenGL程序
Linux下OpenGL的安装与cmake编译OpenGL程序
OpenGL安装
安装命令如下:
$ sudo apt install build-essential
$ sudo apt install libgl1-mesa-dev
$ sudo apt install libglu1-mesa-dev
$ sudo apt install freeglut3 freeglut3-dev
cmake编译OpenGL程序
project
├── MeshLib
│ └── core
│ └── bmp
│ └── RgbImage.cpp
├── MyDemo
│ ├── main.cpp
│ ├── CMakeLists.txt
│ └── build
│
其他头文件的路径直接在.cpp里体现出来,如:
在main.cpp中:
#include
#include"../MeshLib/core/viewer/Arcball.h"
#include"../MeshLib/core/bmp/RgbImage.h"
#include"../MeshLib/core/Geometry/quat.h"
否则,如果直接写 #include “Arcball.h” 之类的,就需要在CMakeLists.txt中包含所有头文件路径(如glut.h就需要指定路径 OpenGL_INCLUDE_DIR)
若使用freeglut的话
MyDemo/CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
add_compile_options(-std=c++11)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/build/CMakeModules/")
project(MyDemo)
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIR})
find_package(FREEGLUT REQUIRED)
include_directories(${FREEGLUT_INCLUDE_DIR})
add_executable(${PROJECT_NAME} ${PROJECT_BINARY_DIR}/../../MeshLib/core/bmp/RgbImage.cpp main.cpp )
target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARY} ${FREEGLUT_LIBRARY} ${OPENGL_LIBRARY})
但是光这样还是没办法的,因为找不到freeglut库,这时候需要再写一个搜索package frerglut的CMakeLitsts.txt
在build目录下mkdir一个CMakeModules, 新建一个文件名FindFREEGLUT.cmake的文件,编辑内容如下(为什么是在build目录下新建而不是在MyDemo目录下?因为我们是进入build中,执行命令”cmake ..“的)
# Try to find the FREEGLUT library
#
# FREEGLUT_INCLUDE_DIR
# FREEGLUT_LIBRARY
# FREEGLUT_FOUND
FIND_PATH(
FREEGLUT_INCLUDE_DIR GL/freeglut.h GL/gl.h GL/glu.h GL/glew.h
${CMAKE_INCLUDE_PATH}
$ENV{include}
${OPENGL_INCLUDE_DIR}
/usr/include
/usr/local/include
)
SET(STORE_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
SET(CMAKE_FIND_FRAMEWORK NEVER)
FIND_LIBRARY(
FREEGLUT_LIBRARY
NAMES freeglut_static freeglut glut GL
PATH
/opt/local/lib
${CMAKE_LIBRARY_PATH}
$ENV{lib}
/usr/lib
/usr/local/lib
)
SET(CMAKE_FIND_FRAMEWORK ${STORE_CMAKE_FIND_FRAMEWORK})
IF (FREEGLUT_INCLUDE_DIR AND FREEGLUT_LIBRARY)
SET(FREEGLUT_FOUND TRUE)
ENDIF (FREEGLUT_INCLUDE_DIR AND FREEGLUT_LIBRARY)
IF (FREEGLUT_FOUND)
IF (NOT FREEGLUT_FIND_QUIETLY)
MESSAGE(STATUS "Found FREEGLUT: ${FREEGLUT_LIBRARY}")
ENDIF (NOT FREEGLUT_FIND_QUIETLY)
ELSE (FREEGLUT_FOUND)
IF (FREEGLUT_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find FREEGLUT")
ENDIF (FREEGLUT_FIND_REQUIRED)
ENDIF (FREEGLUT_FOUND)
若使用glut的话
则则比较简单:
cmake_minimum_required (VERSION 2.6)
project(OpenGL)
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
set(CMAKE_CXX_FLAGS "-g -Wall")
add_executable(OpenGL Main.cpp)
target_link_libraries(OpenGL ${GLUT_LIBRARY} ${OPENGL_LIBRARY})
可能出现的错误
if you use `-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated
解决方法 add_compile_options(-fpermissive -std=c++11)
undefined reference to symbol …
这类错误通常是链接.so, .a文件失败产生的,但是都会给出具体是哪个lib没有:”/lib/x86_64-linux-gnu/libz.so: error adding symbols: DSO missing from command line”
解决方法,
1.用各种方法把libz.so放到指定目录下(方法太多了自行查询)
2.若目录下已有libz.so,则在target_link_libraries中加上该libz.so( ${PROJECT_SOURCE_DIR}//libz.so)
linux opengl安装教程,Linux下OpenGL的安装与cmake编译OpenGL程序相关推荐
- python3.7.4安装教程win7_Window10下python3.7 安装与卸载教程图解
Window10下python3.7 安装与卸载教程图解 1.进入官网https://www.python.org/,点击Downloads下的Windows按钮,进入下载页面. 2.如下图所示,点击 ...
- linux mysql使用教程_Linux 下MySQL的安装及基本使用
1.MySQL安装(使用yum进行安装) yum install mysql* –y Linux MySQL数据默认存放在 /var/lib/mysql/ [root@study ~]# cd /va ...
- mysql8.0 linux 安装教程_linux下mysql8.0安装详细教程
1.下载官方安装包 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz wge ...
- centos得mysql安装教程_Centos下MySQL的安装及配置教程
本文作者以初学者身份,和读者一起学习,最终达到通过阅读此文后,能灵活运用linux下mysql.环境Centos6.3 卸载掉原有mysql并安装和设置新mysql 因为mysql数据库在Linux上 ...
- Win7matlab7.0安装教程,Win7下MATLAB7.0安装教程
Win7下MATLAB 7.0下载地址和详细安装视频链接 http://www.doczj.com/doc/0c00480389eb172ded63b7ea.html/programs/view/3Q ...
- mysql5.7安装教程centos_CentOS7下MySQL5.7安装配置方法图文教程(YUM)
安装环境:CentOS7 64位,MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ # ...
- linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
Linux下OpenGL的安装与cmake编译OpenGL程序 OpenGL安装 安装命令如下: $ sudo apt install build-essential $ sudo apt insta ...
- seafile服务器版能安装在虚拟机上,seafile安装教程linux
seafile安装教程linux [2021-02-15 06:48:59] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...
- Linux、Windows、Mac下Docker的安装与使用
Linux.Windows.Mac下Docker的安装与使用 一.Linux下的安装 二.Windows与Mac下的安装 三.Docker的使用 一.Linux下的安装 这里以Centos 7为例,首 ...
- mysql5.6.33安装教程_Linux下mysql5.6.33安装配置教程
本教程为大家分享了mysql5.6.33在linux下的安装配置方法,供大家参考,具体内容如下 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.h ...
最新文章
- NeurIPS 2020 | 微软亚洲研究院论文摘录之强化学习GAN篇
- 小心内存也会引起蓝屏
- docker omv 防火墙_我的软路由折腾之旅 篇三:在openmediavault上通过Docker实现OPENWRT旁路由功能...
- Spring获取属性配置
- Angular应用里使用HTTP服务的一个具体例子
- mysql主从复制超简单,mysql简单主从复制
- java一致性hash api_一致性哈希算法学习及JAVA代码实现分析
- Zabbix部署(一)
- 麻省理工学院推出数据美国大数据可视化工具
- MFC通过sql访问excel的方法
- 大一java题库及答案_2016最新java考试题库及答案
- 10道经典java面试题_实习生必问(java基础)
- 达索系统携百世慧科技亮相第二届四川装备智造国际博览会
- qq飞车手游忘记哪个区了服务器也没显示,qq飞车手游怎么找回以前玩的区 | 手游网游页游攻略大全...
- 基于图像的场景三维建模
- 2021毓英中学高考成绩查询入口,2021年泉州各高中高考成绩排名及放榜最新消息...
- 如何解读肠道菌群检测报告中维生素指标
- php做后端的优势,【后端开发】php和java的优势
- Elastic App Search:免费的产品,可提供出色的搜索体验
- 瓦片地图面面观之缩放级别
热门文章
- (21)tar打包命令详解
- 杨辉三角形Java实现
- limbo镜像linux下载,Limbowin10镜像下载|Limbo模拟器win10镜像 可上网版下载_最火手机站...
- CentOS操作系统防火墙添加端口
- 超微服务器主板型号,Supermicro超微主板X10SRL-FLGA-2011,单路入门级服务器主板
- Java实现基础坦克大战【含源码】
- 读取xlsx,根据模板图片批量添加文字生成相关图片,如证书,奖状,名片等
- 6*6数独,要求输出结果
- IMSIDesign.TurboCAD.Designer.v14
- c语言怎么把字符串转数组,【转】C语言 字符数组与字符串