这几天在Ubuntu上面要配置一个GNSS_INS的开源算法https://github.com/2013fangwentao/Multi_Sensor_Fusion,看了一下cmakelists.txt中需要用的,opencv、glog、gflags、 eigen、ceres几个库。试了好几个版本之间的搭配,发现glog0.4.0+gflags2.2.2+ eigen3.3.7+ceres1.14能成功编译,opencv版本都可以。
使用anaconda配置开发环境的原因简单叙述一下:首先anaconda创建的环境便于移植,在一台电脑上创建好anaconda环境后,导出环境.yaml使用
conda env create -f Your_anaconda_enviroment.yml
命令就可以在另外一台电脑中复制开发环境。anaconda安装库的时候还有一个非常大的优点就是它会自动帮你安装这个库所需要的依赖项。
1、我在anaconda中依次安装几个库,流程就是在Ubuntu终端中创建anaconda环境,然后激活anaconda环境。
conda create -n GNSS_INS
conda activate GNSS_INS
然后依次再安装这些库,以安装glog举例:
进入anaconda官网https://www.anaconda.org/
搜素glog,寻找我们需要的版本
2、然后点进去,如下图,可以看到这个glog是支持linux-64的,执行下述命令安装glog库:
conda install -c prometeia glog
3、在终端中执行conda list命令查看安装好的库:
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_openmp_mutex 4.5 1_gnu defaults
blas 1.0 mkl defaults
bzip2 1.0.8 h7b6447c_0 defaults
c-ares 1.17.1 h27cfd23_0 defaults
ca-certificates 2019.11.28 hecc5488_0 conda-forge/label/cf202003
cairo 1.16.0 hf32fb01_1 defaults
ceres-solver 1.14.0 he1b5a44_1 conda-forge/label/cf202003
certifi 2019.11.28 py37hc8dfbb8_1 conda-forge/label/cf202003
cmake 3.20.3 h8897547_0 conda-forge
eigen 3.3.7 hc9558a2_1001 conda-forge/label/cf202003
eigen3 3.3.7 0 omnia
expat 2.4.1 h2531618_2 defaults
ffmpeg 4.0 hcdf2ecd_0 defaults
fontconfig 2.13.1 h6c09931_0 defaults
freeglut 3.0.0 hf484d3e_5 defaults
freetype 2.10.4 h5ab3b9f_0 defaults
gflags 2.2.2 he1b5a44_1004 conda-forge
glib 2.68.2 h36276a3_0 defaults
glog 0.4.0 h54a7bfb_0 intel
graphite2 1.3.14 h23475e2_0 defaults
harfbuzz 1.8.8 hffaf4a1_0 defaults
hdf5 1.10.2 hba1933b_1 defaults
icu 58.2 he6710b0_3 defaults
intel-openmp 2021.2.0 h06a4308_610 defaults
jasper 2.0.14 h07fcdf6_1 defaults
jpeg 9b h024ee3a_2 defaults
krb5 1.19.1 h3535a68_0 defaults
ld_impl_linux-64 2.35.1 h7274673_9 defaults
libcurl 7.77.0 h2574ce0_0 conda-forge
libedit 3.1.20210216 h27cfd23_1 defaults
libev 4.33 h7b6447c_0 defaults
libffi 3.3 he6710b0_2 defaults
libgcc-ng 9.3.0 h5101ec6_17 defaults
libgfortran-ng 7.5.0 ha8ba4b0_17 defaults
libgfortran4 7.5.0 ha8ba4b0_17 defaults
libglu 9.0.0 hf484d3e_1 defaults
libgomp 9.3.0 h5101ec6_17 defaults
libnghttp2 1.43.0 h812cca2_0 conda-forge
libopencv 3.4.2 hb342d67_1 defaults
libopus 1.3.1 h7b6447c_0 defaults
libpng 1.6.37 hbc83047_0 defaults
libssh2 1.9.0 h1ba5d50_1 defaults
libstdcxx-ng 9.3.0 hd4cf53a_17 defaults
libtiff 4.0.9 he85c1e1_2 defaults
libuuid 1.0.3 h1bed415_2 defaults
libuv 1.40.0 h7b6447c_0 defaults
libvpx 1.7.0 h439df22_0 defaults
libxcb 1.14 h7b6447c_0 defaults
libxml2 2.9.10 hb55368b_3 defaults
lz4-c 1.9.3 h2531618_0 defaults
mkl 2021.2.0 h06a4308_296 defaults
mkl-service 2.3.0 py37h27cfd23_1 defaults
mkl_fft 1.3.0 py37h42c9631_2 defaults
mkl_random 1.2.1 py37ha9443f7_2 defaults
ncurses 6.2 he6710b0_1 defaults
numpy 1.20.2 py37h2d18471_0 defaults
numpy-base 1.20.2 py37hfae3a4d_0 defaults
opencv 3.4.2 py37h6fd60c2_1 defaults
openssl 1.1.1k h27cfd23_0 defaults
pcre 8.44 he6710b0_0 defaults
pip 21.1.2 py37h06a4308_0 defaults
pixman 0.40.0 h7b6447c_0 defaults
py-opencv 3.4.2 py37hb342d67_1 defaults
python 3.7.10 h12debd9_4 defaults
python_abi 3.7 1_cp37m conda-forge/label/cf202003
readline 8.1 h27cfd23_0 defaults
rhash 1.4.1 h3c74f83_1 defaults
setuptools 52.0.0 py37h06a4308_0 defaults
six 1.15.0 py37h06a4308_0 defaults
sqlite 3.35.4 hdfb4753_0 defaults
tbb 2020.1 hc9558a2_0 conda-forge/label/cf202003
tk 8.6.10 hbc83047_0 defaults
wheel 0.36.2 pyhd3eb1b0_0 defaults
xz 5.2.5 h7b6447c_0 defaults
zlib 1.2.11 h7b6447c_3 defaults
zstd 1.5.0 ha95c52a_0 conda-forge
4、在激活该anaconda虚拟环境的情况下,使用如下命令导出环境
conda env export > environment.yaml
5、我的.yaml如下:
name: GNSS_INS
channels:
- intel
- omnia
- conda-forge
- conda-forge/label/cf202003
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=4.5=1_gnu
- blas=1.0=mkl
- bzip2=1.0.8=h7b6447c_0
- c-ares=1.17.1=h27cfd23_0
- ca-certificates=2019.11.28=hecc5488_0
- cairo=1.16.0=hf32fb01_1
- ceres-solver=1.14.0=he1b5a44_1
- certifi=2019.11.28=py37hc8dfbb8_1
- cmake=3.20.3=h8897547_0
- eigen=3.3.7=hc9558a2_1001
- eigen3=3.3.7=0
- expat=2.4.1=h2531618_2
- ffmpeg=4.0=hcdf2ecd_0
- fontconfig=2.13.1=h6c09931_0
- freeglut=3.0.0=hf484d3e_5
- freetype=2.10.4=h5ab3b9f_0
- gflags=2.2.2=he1b5a44_1004
- glib=2.68.2=h36276a3_0
- glog=0.4.0=h54a7bfb_0
- graphite2=1.3.14=h23475e2_0
- harfbuzz=1.8.8=hffaf4a1_0
- hdf5=1.10.2=hba1933b_1
- icu=58.2=he6710b0_3
- intel-openmp=2021.2.0=h06a4308_610
- jasper=2.0.14=h07fcdf6_1
- jpeg=9b=h024ee3a_2
- krb5=1.19.1=h3535a68_0
- ld_impl_linux-64=2.35.1=h7274673_9
- libcurl=7.77.0=h2574ce0_0
- libedit=3.1.20210216=h27cfd23_1
- libev=4.33=h7b6447c_0
- libffi=3.3=he6710b0_2
- libgcc-ng=9.3.0=h5101ec6_17
- libgfortran-ng=7.5.0=ha8ba4b0_17
- libgfortran4=7.5.0=ha8ba4b0_17
- libglu=9.0.0=hf484d3e_1
- libgomp=9.3.0=h5101ec6_17
- libnghttp2=1.43.0=h812cca2_0
- libopencv=3.4.2=hb342d67_1
- libopus=1.3.1=h7b6447c_0
- libpng=1.6.37=hbc83047_0
- libssh2=1.9.0=h1ba5d50_1
- libstdcxx-ng=9.3.0=hd4cf53a_17
- libtiff=4.0.9=he85c1e1_2
- libuuid=1.0.3=h1bed415_2
- libuv=1.40.0=h7b6447c_0
- libvpx=1.7.0=h439df22_0
- libxcb=1.14=h7b6447c_0
- libxml2=2.9.10=hb55368b_3
- lz4-c=1.9.3=h2531618_0
- mkl=2021.2.0=h06a4308_296
- mkl-service=2.3.0=py37h27cfd23_1
- mkl_fft=1.3.0=py37h42c9631_2
- mkl_random=1.2.1=py37ha9443f7_2
- ncurses=6.2=he6710b0_1
- numpy=1.20.2=py37h2d18471_0
- numpy-base=1.20.2=py37hfae3a4d_0
- opencv=3.4.2=py37h6fd60c2_1
- openssl=1.1.1k=h27cfd23_0
- pcre=8.44=he6710b0_0
- pip=21.1.2=py37h06a4308_0
- pixman=0.40.0=h7b6447c_0
- py-opencv=3.4.2=py37hb342d67_1
- python=3.7.10=h12debd9_4
- python_abi=3.7=1_cp37m
- readline=8.1=h27cfd23_0
- rhash=1.4.1=h3c74f83_1
- setuptools=52.0.0=py37h06a4308_0
- six=1.15.0=py37h06a4308_0
- sqlite=3.35.4=hdfb4753_0
- tbb=2020.1=hc9558a2_0
- tk=8.6.10=hbc83047_0
- wheel=0.36.2=pyhd3eb1b0_0
- xz=5.2.5=h7b6447c_0
- zlib=1.2.11=h7b6447c_3
- zstd=1.5.0=ha95c52a_0