(一)afsim第三方库编译

news2025/1/19 11:50:22

注意:防止奇怪的问题,源码编译的路径最好不要有中文,请先检查各文件夹名

AFSIM版本

Version: 2.9

Plugin API Version: 11

软件环境

操作系统: Kylin V10 SP1

项目构建工具: cmake-3.26.0-linux-aarch64

编译器: gcc version 9.3.0

硬件环境

CPU: Phytium,D2000/8 E8C

GPU: 景嘉威JM9100

安装C++开发环境

安装cmake3.26.0

下载cmake-3.26.0-linux-aarch64.tar.gz(链接: https://pan.baidu.com/s/1-4L5yh_dQMHs1HIFdlWTpQ?pwd=b2te 提取码: b2te)解压到/usr目录下

设置环境变量(全局)

sudo vim ~/.bashrc

在末尾添加

export PATH=/usr/cmake-3.26.0-linux-aarch64/bin:"$PATH"

按ESC键结束编辑,然后按:wq保存退出文本

安装c++编译环境

sudo apt-get update

sudo apt-get install gcc g++

sudo apt install build-essential

sudo apt-get install m4 libtool autoconf automake tcl

安装opengl

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

安装python3并设置为默认

sudo apt-get update && sudo apt-get install python3

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

创建编译环境变量(全局)

sudo vim ~/.bashrc

在末尾添加

export AFSIM_HOME=/home/cc/afsim

export AFSIM_3RDPARTY_PATH=$AFSIM_HOME/swdev/dependencies/3rd_party

export LD_LIBRARY_PATH=$AFSIM_3RDPARTY_PATH/tiff-4.3.0-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/tinyxml2-7.1.0-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/sdl-2.0.16-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/openssl-3.1.1-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/proj-8.1.1-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/geos-3.5.1-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/gtest-1.8.0-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/libpng-1.6.37-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/gdal-3.3.2-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/ffmpeg-4.2.4-x64-lnx/lib:$AFSIM_3RDPARTY_PATH/osg-3.6.3-x64-lnx/lib64:$AFSIM_3RDPARTY_PATH/osgEarth-2.10.1-x64-lnx/lib64:$AFSIM_3RDPARTY_PATH/3rd_party/qt-5.12.11-x64-lnx/lib:

按ESC键结束编辑,然后按:wq保存退出文本

第三方库源码下载


链接: https://pan.baidu.com/s/1WEijYrqMV-vmT6St7e6pLA?pwd=fjys 提取码: fjys

编译三方库

zlib-1.2.11

cd zlib-1.2.11

sudo ./configure --enable-shared --prefix=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx

sudo make -j8 && sudo make install

libpng-1.6.37

cd libpng-1.6.37

mkdir build && cd build

cmake .. -DZLIB_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/include -DZLIB_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/lib/libz.so.1.2.11 -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/libpng-1.6.37-x64-lnx -DCMAKE_BUILD_TYPE=Release

sudo make -j8 && sudo make install

libjpeg-turbo-2.1.2

cd libjpeg-turbo-2.1.2

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx -DCMAKE_BUILD_TYPE=Release

sudo make -j8 && sudo make install

tiff-4.3.0 build

cd tiff-4.3.0

sudo ./configure --with-pic --enable-shared --prefix=$AFSIM_3RDPARTY_PATH/tiff-4.3.0-x64-lnx

sudo make -j8 && sudo make install

sqlite-3.32.3

cd sqlite-3.32.3

在目录下的sqlite3.c文件中添加一个宏:#define SQLITE_ENABLE_COLUMN_METADATA 1 (用于解决undefined symbol: sqlite3_column_table_name)

sudo CPPFLAGS="-I$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/include" ./configure --with-pic --enable-shared --prefix=$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx

sudo make -j8 && sudo make install

SDL-2.0.16

cd SDL-release-2.0.16

sudo ./configure --with-pic --enable-shared --prefix=$AFSIM_3RDPARTY_PATH/sdl-2.0.16-x64-lnx

sudo make -j8 && sudo make install

tinyxml2-7.1.0

cd tinyxml2-7.1.0

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/tinyxml2-7.1.0-x64-lnx -DCMAKE_BUILD_TYPE=Release

sudo make -j8 && sudo make install

googletest-release-1.8.0

cd googletest-release-1.8.0

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/gtest-1.8.0-x64-lnx -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=true

sudo make -j8 && sudo make install

openssl-3.1.1

cd openssl-3.1.1

sudo ./Configure -fPIC -shared --prefix=$AFSIM_3RDPARTY_PATH/openssl-3.1.1-x64-lnx

sudo make -j8 && sudo make install

curl-7.79.1

cd curl-7.79.1

mkdir build && cd build

cmake .. -DOPENSSL_CRYPTO_LIBRARY=$AFSIM_3RDPARTY_PATH/openssl-3.1.1-x64-lnx/lib/libcrypto.so.3 -DOPENSSL_SSL_LIBRARY=$AFSIM_3RDPARTY_PATH/openssl-3.1.1-x64-lnx/lib/libssl.so.3 -DOPENSSL_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/openssl-3.1.1-x64-lnx/include -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx -DCMAKE_BUILD_TYPE=Release

sudo make -j8 && sudo make install

PROJ-8.1.1

(1)采用clion进行编译:

cmake选项:

-DSQLITE3_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/include -DSQLITE3_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/lib/libsqlite3.so.0.8.6 -DEXE_SQLITE3=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/bin/sqlite3 -DTIFF_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/include -DTIFF_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/lib/libtiff.so.5.7.0 -DCURL_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib/libcurl.so -DCURL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/include -DSSL_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/openssl-3.1.1-x64-lnx/lib/libssl.so -DSSL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/openssl-3.1.1-x64-lnx/include -DCMAKE_INSTALL_PREFIX=/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=YES -DUSE_EXTERNAL_GTEST=OFF

(2)需要修改源码中的cmake文件,添加rpath:

src/CMakeLists.txt开始处添加:

function(add_rpath TARGET_NAME)
  if(NOT WIN32)
    set(TEMP_RPATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/openssl-3.1.1-x64-lnx/lib)
    set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS "-Wl,-rpath,${TEMP_RPATH}")
  endif ()
endfunction()

在每个编译异常的add_executable后添加add_rpath

(3)安装

geos-3.5.1

cd geos-3.5.1

mkdir build && cd build

cmake .. -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/geos-3.5.1-x64-lnx -DCMAKE_BUILD_TYPE=Release

sudo make -j8 && sudo make install

编不通:

geos_ts_c.cpp会有报错注释掉 #include "../geos_svn_revision.h" 即可

GEOS_SVN_REVISION改为GEOS_VERSION

ffmpeg-4.2.4

cd ffmpeg-4.2.4

sudo ./configure --enable-shared --prefix=$AFSIM_3RDPARTY_PATH/ffmpeg-4.2.4-x64-lnx --disable-x86asm

sudo make -j8 && sudo make install

gdal-3.3.2

cd gdal-3.3.2/gdal

sudo ./configure --prefix=$AFSIM_3RDPARTY_PATH/gdal-3.3.2-x64-lnx --with-pic --enable-shared --with-proj=$AFSIM_3RDPARTY_PATH/proj-8.1.1-x64-lnx --with-geos=$AFSIM_3RDPARTY_PATH/geos-3.5.1-x64-lnx/bin/geos-config --with-sqlite3=$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx --with-libtiff=$AFSIM_3RDPARTY_PATH/tiff-4.3.0-x64-lnx --with-curl=$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx/bin/curl-config --with-libz=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx --with-png=$AFSIM_3RDPARTY_PATH/libpng-1.6.37-x64-lnx

sudo make -j8 && sudo make install

configure及编译时出现的问题

(1)PROJ 6 symbols not found

修改configure文件如下,注释提示错误的代码,添加部分代码

PROJ_FOUND=yes
PROJ_INCLUDE="/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/include"
$as_echo "PROJ_INCLUDE:$PROJ_INCLUDE"
EXTRA_INCLUDES="-I/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/include $EXTRA_INCLUDES"
LIBS="-L/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/lib -lproj  $LIBS"
$as_echo "LIBS:$LIBS"

(2)geos找不到的问题,修改configure文件:

HAVE_GEOS="yes"

HAVE_GEOS_RESULT="yes"

GEOS_LIBS="-lgeos -lgeos_c ${LIBS}"

GEOS_CFLAGS = "-I/home/hua/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/include -I/home/hua/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/include/geos"

EXTRA_INCLUDES="-I/home/hua/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/include $EXTRA_INCLUDES"

EXTRA_INCLUDES="-I/home/hua/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/include/geos $EXTRA_INCLUDES"

(3)geos链接找不到文件

修改/home/hua/afsim_3rdparty_build/gdal-3.3.2/gdal/GDALmake.opt(注意这个文件是由./configure生成的,要取消保护,在每次./configure后要重新修改)

-L/home/hua/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/lib -lgeos -lgeos_c

如果出现找不到internalproj,把相应的命令从上面删除

(4)找不到符号

修改/home/hua/afsim_3rdparty_build/gdal-3.3.2/gdal/libtool

/home/cc/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/openssl-3.1.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/lib

参考:

linux下编译GDAL3.x(集成Proj和Geos等) - 乌合之众 - 博客园

https://zhuanlan.zhihu.com/p/559612163

OpenSceneGraph-3.6.3

cd OpenSceneGraph-OpenSceneGraph-3.6.3

mkdir build && cd build

cmake .. -DSQLITE3_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx/include -DSQLITE3_LIBRARY=$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx/lib/libsqlite3.so.0.8.6 -DEXE_SQLITE3=$AFSIM_3RDPARTY_PATH/sqlite-3.32.3-x64-lnx/bin/sqlite3 -DTIFF_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/tiff-4.3.0-x64-lnx/include -DTIFF_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/tiff-4.3.0-x64-lnx/lib/libtiff.so.5.7.0 -DCURL_DIR=$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx -DCURL_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx/lib/libcurl.so -DCURL_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/curl-7.79.1-x64-lnx/include -DJPEG_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx/include -DJPEG_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx/lib/libturbojpeg.so.0.2.0 -DGDAL_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/gdal-3.3.2-x64-lnx/include -DGDAL_LIBRARY=$AFSIM_3RDPARTY_PATH/gdal-3.3.2-x64-lnx/lib/libgdal.so.29.0.2 -DSDL2_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/sdl-2.0.16-x64-lnx/include -DSDL2_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/sdl-2.0.16-x64-lnx/lib/libSDL2-2.0.so.0.16.0 -DSDL2MAIN_LIBRARY=$AFSIM_3RDPARTY_PATH/sdl-2.0.16-x64-lnx/lib/libSDL2main.la -DPNG_PNG_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/libpng-1.6.37-x64-lnx/include -DPNG_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/libpng-1.6.37-x64-lnx/lib/libpng16.so.16.37.0 -DZLIB_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/include -DZLIB_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/zlib-1.2.11-x64-lnx/lib/libz.so.1.2.11 -DFFMPEG_ROOT=$AFSIM_3RDPARTY_PATH/ffmpeg-4.2.4-x64-lnx -DCMAKE_INSTALL_PREFIX=$AFSIM_3RDPARTY_PATH/osg-3.6.3-x64-lnx -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=YES

sudo make -j8 && sudo make install

如果采用clion编译,cmake选项如下:

-DSQLITE3_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/include -DSQLITE3_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/lib/libsqlite3.so.0.8.6 -DEXE_SQLITE3=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/bin/sqlite3 -DTIFF_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/include -DTIFF_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/lib/libtiff.so.5.7.0 -DCURL_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx -DCURL_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib/libcurl.so -DCURL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/include -DJPEG_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/libjpeg-turbo-2.1.2-x64-lnx/include -DJPEG_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/libjpeg-turbo-2.1.2-x64-lnx/lib/libturbojpeg.so.0.2.0 -DGDAL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/gdal-3.3.2-x64-lnx/include -DGDAL_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/gdal-3.3.2-x64-lnx/lib/libgdal.so.29.0.2 -DSDL2_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/include -DSDL2_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/lib/libSDL2-2.0.so.0.16.0 -DSDL2MAIN_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/lib/libSDL2main.la -DPNG_PNG_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/include -DPNG_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/lib/libpng16.so.16.37.0 -DZLIB_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/zlib-1.2.11-x64-lnx/include -DZLIB_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/zlib-1.2.11-x64-lnx/lib/libz.so.1.2.11 -DFFMPEG_ROOT=/home/cc/afsim/swdev/dependencies/3rd_party/ffmpeg-4.2.4-x64-lnx -DCMAKE_INSTALL_PREFIX=/home/cc/afsim/swdev/dependencies/3rd_party/osg-3.6.3-x64-lnx -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=YES

注意

osg编译安装完之后,bin目录下的osgviewer应该可以打开.earth文件。终端命令如下:

./osgviewer '/home/cc/afsim/build-debug/resources/maps/bluemarble_db/bmng.earth'

如果不能启动,或者启动后显示白球,请根据提示做修改。

(1)

提示:libturbojpeg.so.0: cannot open shared object file: No such file or directory

解决方案:这是环境变量中没有指定好jpeg库路径,修改~/.bashrc:

参考:libfsuartservo.so: cannot open shared object file: No such file or directory_libavfilter.so.6: cannot open shared object file: -CSDN博客

(2)

提示:

VERTEX glCompileShader "main(vertex)" FAILED

VERTEX Shader "main(vertex)" infolog:

0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

解决方案:

参考:error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00-CSDN博客

opengl版本问题 - 狂奔~ - 博客园

osgEarth-2.10.1 (参照附录先改一下代码,添加arm64宏定义)

1、参照附录先改一下代码,添加arm64宏定义;

2、用clion进行编译

cmake选项:

-DGEOS_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/geos-3.5.1-x64-lnx -DSQLITE3_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/include -DSQLITE3_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/lib/libsqlite3.so.0.8.6 -DEXE_SQLITE3=/home/cc/afsim/swdev/dependencies/3rd_party/sqlite-3.32.3-x64-lnx/bin/sqlite3 -DTIFF_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/include -DTIFF_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/tiff-4.3.0-x64-lnx/lib/libtiff.so.5.7.0 -DCURL_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx -DCURL_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib/libcurl.so -DCURL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/include -DJPEG_INCLUDE_DIR=$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx/include -DJPEG_LIBRARY_RELEASE=$AFSIM_3RDPARTY_PATH/libjpeg-turbo-2.1.2-x64-lnx/lib/libturbojpeg.so.0.2.0 -DPROJ_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx -DPROJ_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/include -DPROJ_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/proj-8.1.1-x64-lnx/lib/libproj.so.22.1.1 -DGDAL_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/gdal-3.3.2-x64-lnx -DGDAL_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/gdal-3.3.2-x64-lnx/include -DGDAL_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/gdal-3.3.2-x64-lnx/lib/libgdal.so.29.0.2 -DSDL2_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/include -DSDL2_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/lib/libSDL2-2.0.so.0.16.0 -DSDL2MAIN_LIBRARY=/home/cc/afsim/swdev/dependencies/3rd_party/sdl-2.0.16-x64-lnx/lib/libSDL2main.la -DPNG_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/include -DPNG_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/libpng-1.6.37-x64-lnx/lib/libpng16.so.16.37.0 -DZLIB_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/zlib-1.2.11-x64-lnx/include -DZLIB_LIBRARY_RELEASE=/home/cc/afsim/swdev/dependencies/3rd_party/zlib-1.2.11-x64-lnx/lib/libz.so.1.2.11 -DFFMPEG_ROOT=/home/cc/afsim/swdev/dependencies/3rd_party/ffmpeg-4.2.4-x64-lnx -DOSG_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/osg-3.6.3-x64-lnx -DOSG_INCLUDE_DIR=/home/cc/afsim/swdev/dependencies/3rd_party/osg-3.6.3-x64-lnx/include -DBUILD_OSGEARTH_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=/home/cc/afsim/swdev/dependencies/3rd_party/osgEarth-2.10.1-x64-lnx -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=YES -DOSGEARTH_ENABLE_FASTXDT=OFF

3、添加rpath

CMakeModules/OsgEarthMacroUtils.cmake顶部添加函数:

function(add_rpath TARGET_NAME)
    if(NOT WIN32)
        set(TEMP_RPATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/curl-7.79.1-x64-lnx/lib:/home/cc/afsim/swdev/dependencies/3rd_party/openssl-3.1.1-x64-lnx/lib)
        set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS "-Wl,-rpath,${TEMP_RPATH}")
    endif ()
endfunction()

查找ADD_EXECUTABLE,后面添加add_rpath

4、安装

qt-5.12.11

参见:qt编译

附录

在银河麒麟下适配的修改记录

修改三方库记录

修改原因:osgEarth代码未支持arm64平台

修改方案:添加文件,更换头文件

更改位置:src/osgEarthDrivers/fastdxt/intrinsic.cpp文件

拷贝文件在同文件夹下: sse2neon.h文件(github搜sse2neon,地址:https://github.com/DLTcollab/sse2neon)

原来代码:

#include <emmintrin.h> // sse2

现在代码:

#ifdef __aarch64__

#include "sse2neon.h"

#else

#include <emmintrin.h> // sse2

#endif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2025.1.17——三、SQLi regexp正则表达式|

题目来源&#xff1a;buuctf [NCTF2019]SQLi1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;正常注入 step 2&#xff1a;弄清关键字黑名单 1.目录扫描 2.bp爆破 step 3&#xff1a;根据过滤名单构造payload step 4&#xff1a;regexp正则注…

docker的数据卷与dockerfile自定义镜像

docker的数据卷与dockerfile自定义镜像 一. docker的数据卷数据卷容器 二. dockerfile自定义镜像2.1 dockerfile的命令格式镜像的操作命令add和copy的区别 容器启动的命令 2.2 run命令2.3 其它端口映射 三. 练习 一. docker的数据卷 容器于宿主机之间&#xff0c;或者容器和容…

【python_钉钉群发图片】

需求&#xff1a; **在钉钉群发图片&#xff0c;需要以图片的形式展示&#xff0c;如图所示&#xff1a;**但是目前影刀里面没有符合条件的指令 解决方法&#xff1a; 1、在钉钉开发者后台新建一个自建应用&#xff0c;发版&#xff0c;然后获取里面的appkey和appsecret&am…

新星杯-ESP32智能硬件开发--ESP32的I/O组成-系统中断矩阵

本博文内容导读&#x1f4d5;&#x1f389;&#x1f525; ESP32开发板的中断矩阵、功能描述与实现、相关API和示例程序进行介绍 ESP32中断矩阵将任一外部中断源单独分配到每个CPU的任一外部中断上&#xff0c;提供了强大的灵活性&#xff0c;能适应不同的应用需求。 ESP32中断主…

软路由系统iStoreOS 一键安装 docker compose

一键安装命令 大家好&#xff01;今天我来分享一个快速安装 docker-compose 的方法。以下是我常用的命令&#xff0c;当前版本是 V2.32.4。如果你需要最新版本&#xff0c;可以查看获取docker compose最新版本号 部分&#xff0c;获取最新版本号后替换命令中的版本号即可。 w…

CSRF攻击XSS攻击

概述 ​在 HTML 中&#xff0c;<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址&#xff0c;而所谓的跨域请求就是指&#xff1a;当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指…

企业分类相似度筛选实战:基于规则与向量方法的对比分析

文章目录 企业表相似类别筛选实战项目背景介绍效果展示基于规则的效果基于向量相似的效果 说明相关文章推荐 企业表相似类别筛选实战 项目背景 在当下RAG&#xff08;检索增强生成&#xff09;技术应用不断发展的背景下&#xff0c;掌握文本相似算法不仅能够助力信息检索&…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测

角点检测&#xff08;Corner Detection&#xff09;是计算机视觉和图像处理中重要的步骤&#xff0c;主要用于提取图像中的关键特征&#xff0c;以便进行后续的任务&#xff0c;比如图像匹配、物体识别、运动跟踪等。下面介绍几种常用的角点检测方法及其应用。 1. Harris角点检…

RC2在线加密工具

RC2是由著名密码学家Ron Rivest设计的一种传统对称分组加密算法&#xff0c;它可作为DES算法的建议替代算法。RC2是一种分组加密算法&#xff0c;RC2的密钥长度可变&#xff0c;可以从8字节到128字节&#xff0c;安全性选择更加灵活。 开发调试上&#xff0c;有时候需要进行对…

玩转大语言模型——使用graphRAG+Ollama构建知识图谱

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用graphRAGOllama构建知识图谱 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知…

【王树森搜索引擎技术】相关性01:搜索相关性的定义与分档

工业界是怎么做的&#xff1f; 制定标注规则 -> 标注数据 -> 训练模型 -> 线上推理搜索产品和搜索算法团队定义相关性标注规则 认为地将 (q,d) 相关性划分为 4个 或 5个 档位相关性文档规则非常重要&#xff01;假如日后有大幅度变动&#xff0c;需要重新标注数据&am…

学习threejs,使用FlyControls相机控制器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.FlyControls 相机控制…

LabVIEW 程序中的 R6025 错误

R6025错误 通常是 运行时库 错误&#xff0c;特别是与 C 运行时库 相关。这种错误通常会在程序运行时出现&#xff0c;尤其是在使用 C 编译的程序或依赖 C 运行时库的程序时。 ​ 可能的原因&#xff1a; 内存访问冲突&#xff1a; R6025 错误通常是由于程序在运行时访问无效内…

第4章 Kafka核心API——Kafka客户端操作

Kafka客户端操作 一. 客户端操作1. AdminClient API 一. 客户端操作 1. AdminClient API

Tarjan算法笔记

Tarjan 内容概要 dfs 搜索树 首先&#xff0c;我们要知道&#xff0c;Tarjan 算法来源于搜索树&#xff0c;那是什么呢&#xff0c;顾名思义就是按照搜索的顺序来遍历&#xff0c;所产生的顺序构成的树。首先我们可以来举个有向图的例子&#xff1a; 所以我们可以知道 dfs 生…

socket网络通信基础

目录 一、套接字编程基本流程 二、TCP流式协议及Socket编程的recv()和send() 三、读写无阻塞-完美掌握I/O复用 select&#xff08;&#xff09;函数详解 poll&#xff08;&#xff09;函数详解 epoll () 函数详解 一、套接字编程基本流程 原文链接&#xff1a;Socket编程…

接口防篡改+防重放攻击

接口防止重放攻击&#xff1a;重放攻击是指攻击者截获了一次有效请求(如交易请求),并在之后的时间里多次发送相同的请求&#xff0c;从而达到欺骗系统的目的。为了防止重放攻击&#xff0c;通常需要在系统中引入一种机制&#xff0c;使得每个请求都有一个唯一的标识符(如时间戳…

庄小焱——2024年博文总结与展望

摘要 大家好&#xff0c;我是庄小焱。岁末回首&#xff0c;2024 年是我在个人成长、博客创作以及生活平衡方面收获颇丰的一年。这一年的经历如同璀璨星辰&#xff0c;照亮了我前行的道路&#xff0c;也为未来的发展奠定了坚实基础。 1. 个人成长与突破 在 2024 年&#xff0c…

在线base64转码工具

在线base64转码工具&#xff0c;无需登录&#xff0c;无需费用&#xff0c;用完就走。 官网地址&#xff1a; https://base64.openai2025.com 效果&#xff1a;

鸿蒙学习构建视图的基本语法(二)

一、层叠布局 // 图片 本地图片和在线图片 Image(https://developer.huawei.com/allianceCmsResource/resource/HUAWEI_Developer_VUE/images/080662.png) Entry Component//自适应伸缩 设置layoutWeight属性的子元素与兄弟元素 会按照权重进行分配主轴的空间// Position s…