Kylin4.0.2运行环境配置(gdal、opencv编译安装)

新安装的Kylin4.0.2系统无法正常使用,不能基于apt安装软件包故此对使用Kylin系统的踩坑过程进行记录。同时实现了在kylin系统下,gdal、opencv、boost库的编译和安装,并提供了cmakelist样本文件。

1、报错解决

1.1 没有 Release 文件

报错一:仓库 “http://archive.kylinos.cn/yhkylin main Release” 没有 Release 文件

正在读取软件包列表... 完成
W: 仓库 “file:/media/kylin/Kylin-4.0.2 juniper Release” 没有 Release 文件。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
W: 仓库 “http://archive.kylinos.cn/yhkylin juniper Release” 没有 Release 文件。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
E: 无法下载 file:/media/kylin/Kylin-4.0.2/dists/juniper/main/binary-amd64/Packages  无法找到文件 - /media/kylin/Kylin-4.0.2/dists/juniper/main/binary-amd64/Packages (2: 没有那个文件或目录)
E: 无法下载 http://archive.kylinos.cn/yhkylin/dists/juniper/main/binary-amd64/Packages  404  Not Found
E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

解决方案
修改/etc/apt/sources.list文件,将内容替换为以下

#deb file:///media/kylin/Kylin-4.0.2 juniper main
#deb http://archive.kylinos.cn/yhkylin/ juniper main restricted universe multiverse
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2-desktop main restricted universe multiverse

所输入的源地址参考自:https://blog.csdn.net/weixin_42123237/article/details/116885399 , 如果版本号不同则参考连接替换为自己的版本号

1.2 无法验证下列签名 :NO_PUBKEY

报错二:由于没有公钥,无法验证下列签名 :NO_PUBKEY

sudo apt-get update && apt-get upgrade 
... 正在读取软件包列表
... 完成 
W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:https://dl.winehq.org/wine-builds/ubuntu bionic 
InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 76F1A20FF987672F 
W: 无法下载 https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 76F1A20FF987672F 
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。 
E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (13: 权限不够) 
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root? ...

解决方案
命令中的76F1A20FF987672F要根据NO_PUBKEY对应进行修改
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 76F1A20FF987672F
参考地址:https://www.cnblogs.com/2205254761qq/p/11863928.html

2、软件安装

2.1 GDAL安装记录

完全参考 https://blog.csdn.net/wokaowokaowokao12345/article/details/126644466 进行实现,但不按章节目录进行软件包安装
关键知识
这里安装软件包都是基于configure文件与make的方式进行源码编译安装。具体的安装包示例可以参考:

wget https://curl.haxx.se/download/curl-7.55.1.tar.gz
tar -xzvf  curl-7.55.1.tar.gz
cd curl-7.55.1
./configure
make -j4
sudo make install
sudo ldconfig

编译安装步骤
步骤1-4安装的都是依赖项,其中gdal依赖proj与curl,而proj依赖sqlite3和libtiff-4。可以先尝试sudo apt install libproj-dev,然后直接进行步骤5.

  • 1、编译安装sqlite3,下载地址 https://www.sqlite.org/2023/sqlite-autoconf-3440000.tar.gz 官网下载页:https://www.sqlite.org/download.html
  • 2、编译安装libtiff-4 下载地址 https://download.osgeo.org/libtiff/tiff-4.6.0.tar.gz 官网下载页:https://download.osgeo.org/libtiff/
  • 3、编译安装curl 下载地址 https://curl.se/download/curl-7.55.1.tar.gz 官网下载页:https://curl.se/download/
  • 4、编译安装proj 下载地址 https://download.osgeo.org/proj/proj-8.0.0.tar.gz 官网下载页:https://download.osgeo.org/proj/
  • 5、编译安装 gdal,如果报错PROJ6 not found,则使用./configure --with-proj=/usr/local/, 参考 https://blog.csdn.net/aganliang/article/details/103395518 实现

2.2 opencv安装记录

主要参考https://blog.csdn.net/a486259/article/details/130248111和https://blog.csdn.net/weixin_43552197/article/details/121474118进行实现
关键知识
这里安装opencv是使用cmake进行项目配置
编译安装步骤

  • 1、sudo apt install cmake
  • 2、下载并解压opencv3.4 https://opencv.org/releases/
  • 3、进入源码目录,执行cmake配置
mkdir build
cd build
cmake -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local  -D WITH_FFMPEG=ON ..
  • 3、进行编译安装
make -j8
make install
  • 4、检验安装
    输入以下两命令,显示正常则安装成功
pkg-config --modversion opencv #查看版本号
pkg-config --libs opencv #查看libs库

2.3 boost安装记录

参考 https://blog.csdn.net/qq_41854911/article/details/119454212 ,其博文中提到了5中安装方法,为了操作便捷使用以下安装命令即可。

sudo apt-get update
sudo apt-get install libboost-all-dev

cmake配置经验
使用boost时需要再cmake文件中配置add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY),1.66以上版本据说不用加
在编译程序时报错:BOOST multiple definition of boost::system::throws
可以在头文件中添加宏定义:
#define BOOST_SYSTEM_NO_DEPRECATED

扫描二维码关注公众号,回复: 17139858 查看本文章

当使用cmake,程序输出的中文发生乱码时可在cmakelist文件中使用 set (CMAKE_CXX_FLAGS "$ {CMAKE_CXX_FLAGS} -fexec-charset=GBK"),或者使用notepad++等文本编辑器将文件编码修改为utf8

3 cmakelist文件

cmake_minimum_required(VERSION 3.5.1)
#生成生成项目的名称
project(myproject)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_SUPPRESS_REGENERATION FALSE)
#设置生成release项目
set(CMAKE_BUILE_TYPE Release)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
 
#set library path
file(GLOB SOURCE_FILES src/*.cpp)
add_executable(${CMAKE_PROJECT_NAME} ${SOURCE_FILES})

if (CMAKE_HOST_WIN32)
    set(WINDOWS 1)
elseif (CMAKE_HOST_UNIX)
    set(LINUX 1)
endif ()
if (WINDOWS)
	include_directories(
	)
	link_directories(
	)
    target_link_libraries (
	)
elseif (LINUX)
	find_package(OpenCV REQUIRED)
	add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
	#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexec-charset=GBK")
    #target_compile_options(${SOURCE_FILES} PRIVATE -finput-charset=GBK)
	include_directories(
		/usr/local/include/opencv2/
		/usr/local/include/
		/usr/include
		${PROJECT_SOURCE_DIR}/include
	)
	link_directories(
		/usr/lib
		/usr/local/lib
		/usr/local/lib64
		${PROJECT_SOURCE_DIR}/include
	)
    target_link_libraries (
        ${CMAKE_PROJECT_NAME}
        ${OpenCV_LIBS}
        curl
	)
endif ()

猜你喜欢

转载自blog.csdn.net/a486259/article/details/134384709