gdal能在mips架构编译吗
① mips架构的cpu有哪些
mips架构的cpu有四种:IA-32、IA-64、x86-32、x86-64。
CPU(包括嵌入式CPU),开发软件,编译软件,统统拿来,我们只要进行主板设计和软件应用就好了。高端点的就是拿来人家的CPU核做个芯片,或者写写操作系统的驱动了。
由于主频跟CPU性能没有直接联系。OPTERON 6176SE 是AMD高端服务器处理器,具有12个物理核心 但是主频只有2.3GHZ,针对主频做对比,他的主频还不如AMD的X2 215(主频2.7GHZ)。但是实际性能前者后者根本没有可比性。
应用范围:
MIPS32® 和 MIPS64®指令集架构,可以无缝兼容,便于客户从旧代到新代的移植,同时能够保护现有软件的投资。
特定应用扩展(Application Specific Extension,ASE),可提升特定类型应用的性能,其包括:业界标准MIPS32® 和 MIPS64®架构的MIPS® DSP ASE信号处理扩展,能够提升客户SoC的媒体性能。
SmartMIPS® ASE,可在智能卡及其它安全数据应用中实现前所未有的安全性。
MIPS16e™ 代码压缩 ASE,能减少多达40%的存储器使用量。
MIPS-3D® ASE,可在数字娱乐和多媒体产品中实现高性能三维图像处理的一种具成本效益的解决方案。
② linux(centos8)系统安装编译GDAL 2.2.1
win10系统安装gdal,看这篇: windows 安装 GDAL - (jianshu.com)
GDAL库是处理地理信息一个非常强大的库,我这边要用它做 cad 转 geojson 的工作。测试是在windows上进行的,然后现在需要部署到linux上,遇到了安装上的坎儿,记录一下。
DownloadSource – GDAL (osgeo.org)
可以直接:
python36-devel 找不到的话 用:python-devel
在make编译这一步,我报了个错误:
jpeg2000dataset.cpp:35:10: fatal error: jasper/jasper.h: No such file or directory
jasper安装完之后,重新执行步骤4(4. 执行配置、编译、安装:)
在最后添加如下:
保存:
应用:
这步不执行会报错:报错:gdalinfo: error while loading shared libraries: libgdal.so.20: cannot open shared object file: No such file or directory
找不到共享库,意思就是在 bashrc 中添加的没生效。
解决:参考: https://..com/question/1929349307136401747.html
③ 怎么把c语言代码转换为MIPS
把C语言代码转换为MIPS:
以下是c语言代码:
while (candidate_gcd <= min)
{
if (((a mod candidate_gcd) == 0) &&((b mod candidate_gcd) ==
0))
{
current_gcd = candidate_gcd;
}
candidate_gcd = candidate_gcd + 1;
}
以下为转换为mips后的代码:
首先设置变量:
candidate_gcd = $t0
min = $t1
a mod candidate_gcd = $t2
b mod candidate_gcd = $t3
current_gcd = $t4
$t6 = 0
$t5
代码如下:(绿色为注释)
Label3: //设置标签Label3
ble $t0,$t1,Label //当$t0 小于等于$t1 时,跳到标签Label
Label: //设置标签Label
Add $t5,$t2,$t3 //将$t2 和$t3 相加赋值给$t5
Li $t6,0 //给$t6 赋值为0
Leq $t5, $t6,Label1 //判断如果$t6=$t5=0,跳到标签Label1
Label1: //设置标签Label1
Move $t4, $t0 //$t4=$t0
Addi $t0, $t0,1 //$t0=$t0+1(自加加)
J Label3 //跳到标签Label3,这里其实就是实现c 语言
中的while 无限循环
④ 使用nmake编译Gdal源代码(Win10+VS2022)
为了编译Gdal-master的源码,需要PROJ的支持,而PROJ又需要SQLite的支持。
SQLite、PROJ、Gdal-master的源码及编译可参见网页:
https://www.toutiao.com/a7063703225425199623/?log_from=fe233e3892be3_1644664643652
也可使用nmake在命令行创建(参考网页 https://trac.osgeo.org/gdal/wiki/BuildingOnWindows )
使用命令行,进入VS2022开发者命令行窗口
cd D:ProgramsMicrosoft Visual
D:
vcvars64.bat
cd D:SourceCodesgdal-master
set BINDIR=d:programsgdalgdal-bin
set DATADIR=d:programsgdalgdal-data
set INCDIR=d:programsgdalgdal-include
set LIBDIR=d:programsgdalgdal-lib
修改文件“nmake.opt”的内容:
(1)将
#PROJ_INCLUDE = -Id:install-projlocalinclude
改为
PROJ_INCLUDE = -ID:My3rdPartyinclude
(2)将
#PROJ_LIBRARY = d:install-projlocallibproj_6_0.lib shell32.lib ole32.lib
改为
PROJ_LIBRARY = D:My3rdPartylibproj.lib shell32.lib ole32.lib
依次使用下列命令, 创建x64的Release版本
nmake -f makefile.vc MSVC_VER=1930 WIN64=1
nmake /f makefile.vc install MSVC_VER=1930 WIN64=yes
nmake /f makefile.vc devinstall MSVC_VER=1930 WIN64=yes
执行完毕后,目录“d:programsgdal”中的内容如下(使用命令 “tree /f d:programsgdal” 列出)
D:PROGRAMSGDAL
gdal-bin
gdal303.dll
gdaladdo.exe
gdalbuildvrt.exe
gdaldem.exe
gdalenhance.exe
gdalinfo.exe
gdallocationinfo.exe
gdalmanage.exe
gdalmdiminfo.exe
gdalmdimtranslate.exe
gdalsrsinfo.exe
gdaltindex.exe
gdaltransform.exe
gdalwarp.exe
gdal_contour.exe
gdal_create.exe
gdal_grid.exe
gdal_rasterize.exe
gdal_translate.exe
gdal_viewshed.exe
gnmanalyse.exe
gnmmanage.exe
nearblack.exe
ogr2ogr.exe
ogrinfo.exe
ogrlineref.exe
ogrtindex.exe
gdalplugins
drivers.ini
gdal-data
bag_template.xml
cubewerx_extra.wkt
default.rsc
ecw_cs.wkt
eedaconf.json
epsg.wkt
esri_StatePlane_extra.wkt
gdalicon.png
GDALLogoBW.svg
GDALLogoColor.svg
GDALLogoGS.svg
gdalmdiminfo_output.schema.json
gdalvrt.xsd
gmlasconf.xml
gmlasconf.xsd
gml_registry.xml
grib2_center.csv
grib2_process.csv
grib2_subcenter.csv
grib2_table_4_2_0_0.csv
grib2_table_4_2_0_1.csv
grib2_table_4_2_0_13.csv
grib2_table_4_2_0_14.csv
grib2_table_4_2_0_15.csv
grib2_table_4_2_0_16.csv
grib2_table_4_2_0_17.csv
grib2_table_4_2_0_18.csv
grib2_table_4_2_0_19.csv
grib2_table_4_2_0_190.csv
grib2_table_4_2_0_191.csv
grib2_table_4_2_0_2.csv
grib2_table_4_2_0_20.csv
grib2_table_4_2_0_3.csv
grib2_table_4_2_0_4.csv
grib2_table_4_2_0_5.csv
grib2_table_4_2_0_6.csv
grib2_table_4_2_0_7.csv
grib2_table_4_2_10_0.csv
grib2_table_4_2_10_1.csv
grib2_table_4_2_10_191.csv
grib2_table_4_2_10_2.csv
grib2_table_4_2_10_3.csv
grib2_table_4_2_10_4.csv
grib2_table_4_2_1_0.csv
grib2_table_4_2_1_1.csv
grib2_table_4_2_1_2.csv
grib2_table_4_2_20_0.csv
grib2_table_4_2_20_1.csv
grib2_table_4_2_20_2.csv
grib2_table_4_2_2_0.csv
grib2_table_4_2_2_3.csv
grib2_table_4_2_2_4.csv
grib2_table_4_2_2_5.csv
grib2_table_4_2_3_0.csv
grib2_table_4_2_3_1.csv
grib2_table_4_2_3_2.csv
grib2_table_4_2_3_3.csv
grib2_table_4_2_3_4.csv
grib2_table_4_2_3_5.csv
grib2_table_4_2_3_6.csv
grib2_table_4_2_4_0.csv
grib2_table_4_2_4_1.csv
grib2_table_4_2_4_10.csv
grib2_table_4_2_4_2.csv
grib2_table_4_2_4_3.csv
grib2_table_4_2_4_4.csv
grib2_table_4_2_4_5.csv
grib2_table_4_2_4_6.csv
grib2_table_4_2_4_7.csv
grib2_table_4_2_4_8.csv
grib2_table_4_2_4_9.csv
grib2_table_4_2_local_Canada.csv
grib2_table_4_2_local_HPC.csv
grib2_table_4_2_local_index.csv
grib2_table_4_2_local_MRMS.csv
grib2_table_4_2_local_NCEP.csv
grib2_table_4_2_local_NDFD.csv
grib2_table_4_5.csv
grib2_table_versions.csv
gt_datum.csv
gt_ellips.csv
header.dxf
inspire_cp_BasicPropertyUnit.gfs
inspire_cp_CadastralBoundary.gfs
inspire_cp_CadastralParcel.gfs
inspire_cp_CadastralZoning.gfs
jpfgdgml_AdmArea.gfs
jpfgdgml_AdmBdry.gfs
jpfgdgml_AdmPt.gfs
jpfgdgml_BldA.gfs
jpfgdgml_BldL.gfs
jpfgdgml_Cntr.gfs
jpfgdgml_CommBdry.gfs
jpfgdgml_CommPt.gfs
jpfgdgml_Cstline.gfs
jpfgdgml_ElevPt.gfs
jpfgdgml_GCP.gfs
jpfgdgml_LeveeEdge.gfs
jpfgdgml_RailCL.gfs
jpfgdgml_RdArea.gfs
jpfgdgml_RdASL.gfs
jpfgdgml_RdCompt.gfs
jpfgdgml_RdEdg.gfs
jpfgdgml_RdMgtBdry.gfs
jpfgdgml_RdSgmtA.gfs
jpfgdgml_RvrMgtBdry.gfs
jpfgdgml_SBAPt.gfs
jpfgdgml_SBArea.gfs
jpfgdgml_SBBdry.gfs
jpfgdgml_WA.gfs
jpfgdgml_WL.gfs
jpfgdgml_WStrA.gfs
jpfgdgml_WStrL.gfs
LICENSE.TXT
netcdf_config.xsd
nitf_spec.xml
nitf_spec.xsd
ogrvrt.xsd
osmconf.ini
ozi_datum.csv
ozi_ellips.csv
pci_datum.txt
pci_ellips.txt
pdfcomposition.xsd
pds4_template.xml
plscenesconf.json
ruian_vf_ob_v1.gfs
ruian_vf_st_uvoh_v1.gfs
ruian_vf_st_v1.gfs
ruian_vf_v1.gfs
s57agencies.csv
s57attributes.csv
s57expectedinput.csv
s57objectclasses.csv
seed_2d.dgn
seed_3d.dgn
stateplane.csv
template_tiles.mapml
tms_LINZAntarticaMapTileGrid.json
tms_MapML_APSTILE.json
tms_MapML_CBMTILE.json
tms_NZTM2000.json
trailer.dxf
vdv452.xml
vdv452.xsd
vicar.json
gdal-include
armadillo_headers.h
cplkeywordparser.h
cpl_alibaba_oss.h
cpl_atomic_ops.h
cpl_auto_close.h
cpl_aws.h
cpl_azure.h
cpl_compressor.h
cpl_config.h
cpl_config_extras.h
cpl_conv.h
cpl_cpu_features.h
cpl_csv.h
cpl_curl_priv.h
cpl_error.h
cpl_error_internal.h
cpl_float.h
cpl_google_cloud.h
cpl_hash_set.h
cpl_http.h
cpl_json.h
cpl_json_header.h
cpl_json_streaming_parser.h
cpl_json_streaming_writer.h
cpl_list.h
cpl_md5.h
cpl_mem_cache.h
cpl_minixml.h
cpl_minizip_ioapi.h
cpl_minizip_unzip.h
cpl_minizip_zip.h
cpl_multiproc.h
cpl_odbc.h
cpl_port.h
cpl_progress.h
cpl_quad_tree.h
cpl_sha1.h
cpl_sha256.h
cpl_spawn.h
cpl_string.h
cpl_swift.h
cpl_time.h
cpl_userfaultfd.h
cpl_vax.h
cpl_virtualmem.h
cpl_vsi.h
cpl_vsil_curl_class.h
cpl_vsil_curl_priv.h
cpl_vsil_plugin.h
cpl_vsi_error.h
cpl_vsi_virtual.h
cpl_worker_thread_pool.h
cpl_zlib_header.h
gdal.h
gdalexif.h
gdalgeorefpamdataset.h
gdalgrid.h
gdalgrid_priv.h
gdaljp2abstractdataset.h
gdaljp2metadata.h
gdaljp2metadatagenerator.h
gdallinearsystem.h
gdalpansharpen.h
gdalpython.h
gdalsse_priv.h
gdalwarper.h
gdalwarpkernel_opencl.h
gdal_alg.h
gdal_alg_priv.h
gdal_csv.h
gdal_frmts.h
gdal_mdreader.h
gdal_pam.h
gdal_priv.h
gdal_proxy.h
gdal_rat.h
gdal_simplesurf.h
gdal_thread_pool.h
gdal_utils.h
gdal_version.h
gdal_vrt.h
gnm.h
gnmgraph.h
gnm_api.h
gvgcpfit.h
internal_qhull_headers.h
memdataset.h
nasakeywordhandler.h
ograpispy.h
ogrgeomediageometry.h
ogrpgeogeometry.h
ogrsf_frmts.h
ogr_api.h
ogr_attrind.h
ogr_core.h
ogr_expat.h
ogr_feature.h
ogr_featurestyle.h
ogr_geocoding.h
ogr_geometry.h
ogr_geos.h
ogr_geo_utils.h
ogr_libs.h
ogr_p.h
ogr_proj_p.h
ogr_sfcgal.h
ogr_spatialref.h
ogr_srs_api.h
ogr_srs_esri_names.h
ogr_swq.h
ogr_xerces.h
ogr_xerces_headers.h
rawdataset.h
thinplatespline.h
vrtdataset.h
gdal-lib
gdal_i.lib
⑤ 如何在CSharp中使用GDAL
问题解决方案,可以不考虑测试结果 将四个*_CSharp.dll在项目中“添加引用”添加进来,其余gdal16.dll和另外四个编译C#时生成的dll文件拷贝到项目的debug下。即可。 如果不把dll文件拷贝到debug下,将出现下面错误: “OSGeo.OGR.Ogr”的类型初始值设定项引发异常这样的问题。 这个问题是dll不全造成的,除了要引用的4个dll外,还有5个dll也要放到Debug目录下。 在编译C#下的gdal时,总共生成了9个dll,在编译的本机上,程序是通过环境变量path找到另外的几个dll的。 在没有编译过gdal的电脑上,反正就把这9个编译后的dll放到debug下面就一切Ok了
⑥ 编译grub2-mips启动器,制作 MIPS 架构的 grubmips64el.efi
一. 实验环境
二. grub 介皮伏拍绍
三. 在x86架构下,对grub1 与 grub2 引导阶段剖析(再去结合龙芯PMON、昆仑固件、UEFI固件分厅改析启动过程,因为龙芯固件已包含 bootloader 功能,对燃羡比分析)
四. 分区类型选择(X86情况下)
五. 制作 grubmips64el.efi
九. 参考资料
⑦ mips-linux-uclibc-gcc 怎么编译64位程序
理论上安装支持环境,之后 64 位的 gcc 编译成 32 位程序,就加 -m32 参数即可。当然还一个办法是装个 32 位的 gcc 。
另外,交叉编译也适用于 x86 架构。
不过这么编译经常会出现各种问题,所以编译 32 位的程序,最好还是用 32 位系统。
不一定重装,用 chroot 和 setarch 命令配合即可弄出一个 32 位的子系统。