新手填坑--国产统信UOS操作系统上编译OpenScenGraph(OSG)3.4(附编译成果.so)2023年1月

工作需要在国产统信UOS操作系统上搭建QT+OSG跨平台程序,从网上查了很多资料,踩了多多的坑,也填了多多的坑,

深感统信UOS/Ubuntu/linux系统上OpenSceneGraph编译的指导文档不够多,既然从网上获取了很多资料,本着饮水思源的理念,将我自己的

编译过程记录贡献出来给后来人引路。

以前都是在windows系统上工作,从没有用过linux系统,所以算是小白新手一枚。

 

【编译的OSG3.4成果 动态库等】

 

链接:https://pan.baidu.com/s/1QJG2vWF1jdVmbpg6m1MFkg 
提取码:1234

 

---------------------------------------------------------------------------------------------------------------------

统信UOS桌面操作系统 专业版 - 就是 深度(Deepin)linux系统

0sg 3.4     --- 自己去github上下

QT 6.4.1    --- 官网上在线安装

cmake 3.24.2  ---qt中自带

硬件: x86架构的普通机器+统信UOS专业版操作系统

 

Linux 中, 库文件分成静态库和共享库两种。静态库.a 作为后缀名,共享库.so结尾

 

UOS系统中使用的命令跟Ubuntu系统类似。

1sudo

对普通用户开放root管理员权限,比如文件的修改。

 

2chmod

更改目录或文件的访问权限。

sudo chmod 777 sources.list

然后以文本方式打开并将其中的

然后输入 su

 

chmod修改文件夹及子目录权限的方法

sudo chmod 777 * -R

 

还有一种获取权限的方法

在某文件夹下点击鼠标右键,在弹出菜单中选择 以管理员身份打开,输入密码,然后点击鼠标右键选择菜单中的“在终端中打开”,这时打开的cmd窗口里应该已经获取了权限

 

 

 

3、安装库

sudo apt-get install *****

 

----------------------------------------------------------------------------------------------------------------------------

工作记录

2023.1.13

osg3.4编译

github.com/openscenegraph/OpenSceneGraph

 

 

 -- Looking for pthread.h

-- Looking for pthread.h - found

-- Looking for pthread_create

-- Looking for pthread_create - not found

-- Looking for pthread_create in pthreads

-- Looking for pthread_create in pthreads - not found

-- Looking for pthread_create in pthread

-- Looking for pthread_create in pthread - found

-- Found Threads: TRUE  

-- Could NOT find OpenGL (missing:  OPENGL_gl_LIBRARY OPENGL_INCLUDE_DIR)

-- Performing Test GL_HEADER_HAS_GLINT64

-- Performing Test GL_HEADER_HAS_GLINT64 - Failed

-- Performing Test GL_HEADER_HAS_GLUINT64

-- Performing Test GL_HEADER_HAS_GLUINT64 - Failed

-- Could NOT find Freetype (missing:  FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)

-- Could NOT find JPEG (missing:  JPEG_LIBRARY JPEG_INCLUDE_DIR)

-- Could NOT find Jasper (missing:  JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES)

-- Could NOT find LibXml2 (missing:  LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)

-- Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

-- Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

-- Could NOT find GDAL (missing:  GDAL_LIBRARY GDAL_INCLUDE_DIR)

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")

-- Checking for module 'gta'

--   No package 'gta' found

-- Could NOT find CURL (missing:  CURL_LIBRARY CURL_INCLUDE_DIR)

-- Could NOT find GStreamer (missing:  GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIES)

-- Could NOT find SDL2 (missing:  SDL2_LIBRARY SDL2_INCLUDE_DIR)

-- Could NOT find SDL (missing:  SDL_LIBRARY SDL_INCLUDE_DIR)

-- Checking for module 'cairo'

--   No package 'cairo' found

-- Checking for module 'poppler-glib'

--   No package 'poppler-glib' found

-- Checking for module 'librsvg-2.0>=2.35'

--   

-- Checking for module 'cairo'

--   No package 'cairo' found

-- Checking for module 'gtk+-2.0'

--   No package 'gtk+-2.0' found

-- Checking for module 'gtkglext-x11-1.0'

--   No package 'gtkglext-x11-1.0' found

qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

-- Found unsuitable Qt version "" from NOTFOUND

-- Could NOT find Qt3 (missing:  QT_QT_LIBRARY QT_INCLUDE_DIR)

-- Could NOT find JPEG (missing:  JPEG_LIBRARY JPEG_INCLUDE_DIR)

-- Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

-- Could NOT find PNG (missing:  PNG_LIBRARY PNG_PNG_INCLUDE_DIR)

-- Could NOT find TIFF (missing:  TIFF_LIBRARY TIFF_INCLUDE_DIR)

 

 

安装第三方依赖库

https://www.openscenegraph.com/index.php/download-section/dependencies

 

使用 apt-get build-dep openscenegraph 报错:

creatar@creatar-PC:~/OSG/OpenSceneGraph$ apt-get build-dep openscenegraph

E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (13: 权限不够)

E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),请查看您是否正以 root 用户运行?

https://www.jianshu.com/p/0c2690ca3e55

 

 

 

 

 出现错误:E: 您必须在 sources.list 中指定代码源(deb-src) URI

 

sudo chmod 777 sources.list

然后以文本方式打开并将其中的

然后输入 su

 

 

 该用cmake-guiUI方式编译OSG

通过文件搜索,我们发现安装QT时带了cmake

 

 

 打开它,可见ui界面,输入osg源码和编译路径

 

 

 

 

 configure选择 unix makefiles,发现报错提示很多依赖没有找到!!!

没辙了,死马当活马医,试着单独安装依赖库吧!!!!

参考:

Deepin Linux 下 OSG 安装

https://blog.csdn.net/lissdd/article/details/123786749

Linux(centos 7,麒麟V7.0已测试)下编译osg3.4.0 osgearth2.8

https://blog.csdn.net/u013693952/article/details/104036939

通过apt-get安装指定版本的软件

https://qastack.cn/ubuntu/508934/how-to-install-libpng-and-zlib

 

安装zlib

apt-get install zlib-devel

报错提示:

E:无法定位软件包 zlib-devel

那是因为在ubuntu软件源里zlibzlib-devel叫做zlib1g.dev

名字和错误提示中的名字不一致

sudo apt-get install zlib1g.dev

后面提示希望继续执行吗?【y/n y

 

安装成功。

 

安装png

sudo apt-get install libpng-dev

 

 

 安装成功

 

安装curl

sudo apt-get install libcurl-dev

会提示选择其中一个安装

 

 

改为

sudo apt-get install libcurl4-openssl-dev

 

 

 安装成功

 

简单测试一下是否安装成功

curl http://www.baidu.com/

 

安装freetype

该用命令 sudo apt-get install libfreetype6-dev

 

 

 

 安装成功

 

安装jpg

执行 sudo apt-get install libjpeg-dev

 

 

 

 安装成功

 

安装tif

执行 sudo apt-get install libtiff-dev

成功

 

安装gdal

执行 sudo apt-get install libgdal-dev

 

安装Opengl

https://blog.csdn.net/long630576366/article/details/125018827

、安装了opengl的核心库

 

sudo apt-get install libgl1-mesa-dev*

sudo apt-get install build-essential

 

2、安装OpenGL Library

 

sudo apt-get install libgl1-mesa-dev

 

3、安装OpenGL Utilities

 

sudo apt-get install libglu1-mesa-dev

sudo apt-get install libegl1-mesa-dev

 

4、安装OpenGL Utility Toolkit

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

sudo apt-get install mesa-common-dev

sudo apt-get install libglut-dev

 

2023.01.16

编译OSG

cd buildX64

 

cmake ..

 

 

 make

 

 

出现错误:

/home/creatar/OSG/OpenSceneGraph/src/OpenThreads/pthreads/PThread.cpp:1084:1: fatal error: opening dependency file CMakeFiles/OpenThreads.dir/PThread.cpp.o.d: 权限不够

 }

 ^

compilation terminated.

make[2]: *** [src/OpenThreads/pthreads/CMakeFiles/OpenThreads.dir/build.make:76src/OpenThreads/pthreads/CMakeFiles/OpenThreads.dir/PThread.cpp.o] 错误 1

make[1]: *** [CMakeFiles/Makefile2:5018src/OpenThreads/pthreads/CMakeFiles/OpenThreads.dir/all] 错误 2

make: *** [Makefile:136all] 错误 2

 

尝试修改权限:

chmod修改文件夹及子目录权限的方法

sudo chmod 777 * -R

 

重新执行 make指令

 

 

编译正常,成功

 

 

 执行安装指令

sudo make install

 

 

 

  

默认会将头文件安装到 /usr/local/include目录下

 

.so安装路径/usr/local/lib64

 

执行文件安装路径 /usr/local/bin

 

/usr/local/share/OpenSceneGraph/bin

 

添加环境变量

 

/etc/profile 中末尾添加一行 export OSG_FILE_PATH=/home/ziyan/osg/data,

我的OSG数据位置

export OSG_FILE_PATH=/data/home/creatar/OSG/OpenSceneGraph-Data-3.4.0/OpenSceneGraph-Data

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/user/local/lib64

export PATH=$PATH:/data/home/creatar/OSG/OpenSceneGraph/buildX64/bin 

设置完仍然无法正常使用osgviewer??提示未找到命令,即使在

 

经测试发现需要添加sudo 才可以, 应该执行 sudo osgviewer

 osgviewer程序拷贝到lib目录下执行 sudo osgviewer

 

提示找不到libosgViewer.so.133动态链接库

 

 

 但经过检查发现目录下是有这个文件的??难道还是环境变量没有设置成功的缘故???

 

 

  

ubuntu共享库.so文件路径设置 error while loading shared libraries

https://blog.csdn.net/qq_27074519/article/details/118642228

默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定–prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。

1、首先打开/etc/ld.so.conf文件

2、加入动态库文件所在的目录:执行vi /etc/ld.so.conf,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"和"/data/home/creatar/OSG/OpenSceneGraph/buildX64/lib"。

 

3、保存后,在命令行终端执行:/sbin/ldconfig -v;其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。

经过以上三个步骤,"error while loading shared libraries"的问题通常情况下就可以解决了。

 

在终端上输入sudo osgviewer -h 可见调用成功

 

 

 然后在终端执行sudo osgviewer cow.osg

 

提示加载数据失败

2021Ubuntu环境下OSG的编译、安装与使用(vs code/QT

https://blog.csdn.net/afgqwjgfjqwgfg/article/details/116296423

改用cow.osg文件全路径名称,成功

sudo osgviewer /data/home/creatar/OSG/OpenSceneGraph-Data-3.4.0/OpenSceneGraph-Data/cow.osg

 

 

 

 

---------------------------------------------------------------------------------------------------------------------

【编译的OSG3.4成果 动态库等】

链接:https://pan.baidu.com/s/1QJG2vWF1jdVmbpg6m1MFkg
提取码:1234

 

posted on 2023-01-17 14:16  3D入魔  阅读(2261)  评论(0编辑  收藏  举报