0
点赞
收藏
分享

微信扫一扫

imx8 yocto增加文件


参考​​yocto(四)——添加程序和脚本_caodongwang的博客

一、单文件代码添加编译

adv@adv:/work/code/$ tree sources/meta-imx/meta-sdk/recipes-extended
sources/meta-imx/meta-sdk/recipes-extended
├── hello
│ ├── files
│ │ └── helloworld.c
│ └── hello.bb


11 directories, 15 files

hello.bb 

adv@adv:/work/code/$ cat sources/meta-imx/meta-sdk/recipes-extended/hello/hello.bb
#hello.bb文件
SUMMARY = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

# FILESPATH 为什么不要?思考一下,参考《bitbake工作流程》文章内容~~~
#FILESPATH := "${THISDIR}/files:"
SRC_URI = "file://helloworld.c"

# 为什么要指定S变量?思考一下,参考《bitbake工作流程》文章内容~~~
S = "${WORKDIR}"

# 重载do_compile任务,编译工作就是下面这条命令,注意使用${CC}
do_compile() {
${CC} ${LDFLAGS} helloworld.c -o helloworld
}

# 重载do_instal任务,安装编译成果helloworld
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}

# FILES 表示这个软件包,需要打包进映像的文件是helloworld,但决定这个软件包是否参与打包,需要在其他地方配置
# FILES 为什么不要?思考一下,参考《bitbake工作流程》文章内容~~~
#FILES_${PN} += " ${bindir}/helloworld "
adv@adv:/work/code/$

helloworld.c 

adv@adv:/work/code/$ cat sources/meta-imx/meta-sdk/recipes-extended/hello/files/helloworld.c
//helloworld.c文件
#include <stdio.h>

int main(int argc, char *argv[])
{
printf("Hello world!\n");

return 0;
}

编译后生成helloworld可执行文件,

编译命令:

bitbake hello -c compile -v -f

生成路径:

/work/code/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/hello/1.0-r0

如果需要增加到rootfs中可以在conf中增加

IMAGE_INSTALL_append += "hello"

进行全编译后,helloworld路径 

tmp/work/imx8mpevk-poky-linux/imx-robot-sdk/1.0-r0/rootfs/usr/bin/helloworld

二、多文件代码编译

文件列表

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended$ tree hellomake/
hellomake/
├── files
│ ├── helloworld.c
│ ├── main.c
│ └── Makefile
└── hellomake.bb

1 directory, 4 files

增加后可以查看是否有对应的hellomake软件包,说明yocto识别到了软件包

adv@adv:/work/code//build-imx-robot$ bitbake -s | grep hello*
go-helloworld :0.1-r0
hello :1.0-r0
hellomake :1.0-r0
python3-configshell-fb :1.1.29-r0
rqt-shell :1.0.2-1-r0

main.c

adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat files/main.c
#include <stdio.h>

extern void myhello(void);

int main(int argc, char *argv[])
{
myhello();
return 0;
}

helloworld.c

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat files/helloworld.c
#include <stdio.h>

int myhello(int argc, char *argv[])
{
printf("Hello world!\n");

return 0;
}

hellomake.bb

adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat hellomake.bb
#hellomake.bb文件
SUMMARY = "Simple hellomake application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = " \
file://main.c \
file://helloworld.c \
file://Makefile \
"

S = "${WORKDIR}"

EXTRA_OEMAKE = " 'CC=${CC}' 'CFLAGS=${CFLAGS}' 'LDFLAGS=${LDFLAGS}' "
EXTRA_OEMAKE_append = " 'DESTDIR=${D}/${bindir}' "
#上面这条语句可以不要,下面语句改为oe_runmake DESTDIR=${D}/${bindir} install即可
do_install() {
oe_runmake install
}

# FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
#FILES_${PN} += " ${bindir}/hellomake "

使用bitbake hellomake编译生成路径

./tmp/work/cortexa53-crypto-poky-linux/hellomake/1.0-r0/image/usr/bin/hellomake

三、cmake代码编译

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ tree
.
├── files
│ ├── CMakeLists.txt
│ └── src
│ ├── helloworld.c
│ └── main.c
└── hellocmake.bb

2 directories, 4 files

hellworld.c和main.c与上面一样

CMakeLists.txt

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ cat files/CMakeLists.txt
#CMakeLists.txt文件
cmake_minimum_required (VERSION 3.0)
project(hellocmake)

set(SRC_LIST ./src/helloworld.c ./src/main.c)
add_executable(hellocmake ${SRC_LIST})

install(TARGETS hellocmake DESTINATION ${CMAKE_INSTALL_PREFIX}/sbin)

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ cat hellocmake.bb
#hellocmake.bb文件
SUMMARY = "Simple hellocmake application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

#继承cmake类
inherit cmake

SRC_URI = " \
file://src/main.c \
file://src/helloworld.c \
file://CMakeLists.txt \
"

S = "${WORKDIR}"

# FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
#FILES_${PN} += " ${sbindir}/hellocmake "

进入hellocmake/files目录下执行​​cmake .​​​命令,再执行​​make​​命令,确保编译无误,然后返回yocto工程目录顶层在进行编译

bitbake hellocmake

./tmp/work/cortexa53-crypto-poky-linux/hellocmake/1.0-r0/image/usr/sbin/hellocmake

四、Autotools代码编译

adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/helloauto$ tree
.
├── files
│ ├── configure.ac
│ ├── Makefile.am
│ └── src
│ ├── helloworld.c
│ ├── main.c
│ └── Makefile.am
└── helloauto.bb

2 directories, 6 files

helloauto/files目录下执行 命令,确保编译执行无误,然后返回yocto工程目录顶层。

autoreconf --install && ./configure && make && ./src/helloauto

bitbake  helloauto

./tmp/work/cortexa53-crypto-poky-linux/helloauto/1.0-r0/image/usr/bin/helloauto

五、添加已经有的软件包

CORE_IMAGE_EXTRA_INSTALL += "xxx"

六、添加脚本

adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/myscript$ tree
.
├── files
│ ├── ldapwhoami
│ └── serialportuserinit
└── scripts.bb

1 directory, 3 files

 FILESPATH目录未做修改了

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/myscript$ cat scripts.bb
SUMMARY = "examples"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

#${THISDIR}表示bb文件所在路径,即meta-byosoft/meta-4u-x201/recipes-mytest/scripts
#FILESPATH := "${THISDIR}/../../sources/${PN}:"

S = "${WORKDIR}"

SRC_URI = "\
file://ldapwhoami \
file://serialportuserinit \
"
do_install() {
install -m 0755 -d ${D}${sbindir}
install -m 0755 ${S}/ldapwhoami ${D}${sbindir}
install -m 0755 ${S}/serialportuserinit ${D}${sbindir}
}

编译命令 bitbake scripts

tmp/work/cortexa53-crypto-poky-linux/scripts/1.0-r0/image/usr/sbin/

七、软件包打包到rootfs中

在对应conf中增加,先删除conf/layer.conf

IMAGE_INSTALL_append += "hellomake"
IMAGE_INSTALL_append += "hellocmake"
IMAGE_INSTALL_append += "helloauto"
IMAGE_INSTALL_append += "scripts"

八、新增geos压缩文件编译 

 由于系统中已经有geos bb文件,我们改成geosaa

adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/geosaa$ tree
.
├── files
│ └── geos-3.9.3.tar.bz2
└── geosaa.bb

1 directory, 2 files

 注意修改编译目录S

#hellocmake.bb文件
SUMMARY = "Simple geos_aa application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"



SRC_URI = " \
file://geos-3.9.3.tar.bz2 \
"

#继承cmake类
inherit cmake

#修改了编译目录
S = "${WORKDIR}/geos-3.9.3"

# FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
#FILES_${PN} += " ${sbindir}/hellocmake "

bitbake geosaa后

tmp/work/cortexa53-crypto-poky-linux/geosaa/1.0-r0/image/usr/
├── bin
│ └── geos-config
├── include
│ ├── geos
│ │ ├── algorithm
│ │ │ ├── Angle.h
│ │ │ ├── Area.h
│ │ │ ├── BoundaryNodeRule.h
│ │ │ ├── CentralEndpointIntersector.h
│ │ │ ├── Centroid.h
│ │ │ ├── CGAlgorithmsDD.h
│ │ │ ├── construct
│ │ │ │ ├── LargestEmptyCircle.h
│ │ │ │ └── MaximumInscribedCircle.h
│ │ │ ├── ConvexHull.h
│ │ │ ├── ConvexHull.inl
│ │ │ ├── distance
│ │ │ │ ├── DiscreteFrechetDistance.h
│ │ │ │ ├── DiscreteHausdorffDistance.h
│ │ │ │ ├── DistanceToPoint.h
│ │ │ │ └── PointPairDistance.h
│ │ │ ├── Distance.h
│ │ │ ├── HCoordinate.h
│ │ │ ├── InteriorPointArea.h
│ │ │ ├── InteriorPointLine.h
│ │ │ ├── InteriorPointPoint.h
│ │ │ ├── Intersection.h
│ │ │ ├── Length.h
│ │ │ ├── LineIntersector.h
│ │ │ ├── locate
│ │ │ │ ├── IndexedPointInAreaLocator.h
│ │ │ │ ├── PointOnGeometryLocator.h
│ │ │ │ └── SimplePointInAreaLocator.h
│ │ │ ├── MinimumBoundingCircle.h
│ │ │ ├── MinimumDiameter.h
│ │ │ ├── NotRepresentableException.h
│ │ │ ├── Orientation.h
│ │ │ ├── PointLocation.h
│ │ │ ├── PointLocator.h
│ │ │ ├── RayCrossingCounterDD.h
│ │ │ ├── RayCrossingCounter.h
│ │ │ └── RobustDeterminant.h
│ │ ├── constants.h
│ │ ├── edgegraph
│ │ │ ├── EdgeGraphBuilder.h
│ │ │ ├── EdgeGraph.h
│ │ │ ├── HalfEdge.h
│ │ │ └── MarkHalfEdge.h
│ │ ├── export.h
│ │ ├── geom
│ │ │ ├── CoordinateArraySequenceFactory.h
│ │ │ ├── CoordinateArraySequenceFactory.inl
│ │ │ ├── CoordinateArraySequence.h
│ │ │ ├── CoordinateFilter.h
│ │ │ ├── Coordinate.h
│ │ │ ├── Coordinate.inl
│ │ │ ├── CoordinateList.h
│ │ │ ├── CoordinateSequenceFactory.h
│ │ │ ├── CoordinateSequenceFilter.h
│ │ │ ├── CoordinateSequence.h
│ │ │ ├── DefaultCoordinateSequenceFactory.h
│ │ │ ├── Dimension.h
│ │ │ ├── Envelope.h
│ │ │ ├── Envelope.inl
│ │ │ ├── FixedSizeCoordinateSequence.h
│ │ │ ├── GeometryCollection.h
│ │ │ ├── GeometryCollection.inl
│ │ │ ├── GeometryComponentFilter.h
│ │ │ ├── GeometryFactory.h
│ │ │ ├── GeometryFactory.inl
│ │ │ ├── GeometryFilter.h
│ │ │ ├── Geometry.h
│ │ │ ├── HeuristicOverlay.h
│ │ │ ├── IntersectionMatrix.h
│ │ │ ├── LinearRing.h
│ │ │ ├── LineSegment.h
│ │ │ ├── LineSegment.inl
│ │ │ ├── LineString.h
│ │ │ ├── Location.h
│ │ │ ├── MultiLineString.h
│ │ │ ├── MultiLineString.inl
│ │ │ ├── MultiPoint.h
│ │ │ ├── MultiPolygon.h
│ │ │ ├── MultiPolygon.inl
│ │ │ ├── Point.h
│ │ │ ├── Polygon.h
│ │ │ ├── Position.h
│ │ │ ├── PrecisionModel.h
│ │ │ ├── PrecisionModel.inl
│ │ │ ├── prep
│ │ │ │ ├── AbstractPreparedPolygonContains.h
│ │ │ │ ├── BasicPreparedGeometry.h
│ │ │ │ ├── PreparedGeometryFactory.h
│ │ │ │ ├── PreparedGeometry.h
│ │ │ │ ├── PreparedLineStringDistance.h
│ │ │ │ ├── PreparedLineString.h
│ │ │ │ ├── PreparedLineStringIntersects.h
│ │ │ │ ├── PreparedLineStringNearestPoints.h
│ │ │ │ ├── PreparedPoint.h
│ │ │ │ ├── PreparedPolygonContains.h
│ │ │ │ ├── PreparedPolygonContainsProperly.h
│ │ │ │ ├── PreparedPolygonCovers.h
│ │ │ │ ├── PreparedPolygonDistance.h
│ │ │ │ ├── PreparedPolygon.h
│ │ │ │ ├── PreparedPolygonIntersects.h
│ │ │ │ └── PreparedPolygonPredicate.h
│ │ │ ├── Quadrant.h
│ │ │ ├── Quadrant.inl
│ │ │ ├── Triangle.h
│ │ │ └── util
│ │ │ ├── ComponentCoordinateExtracter.h
│ │ │ ├── CoordinateOperation.h
│ │ │ ├── Densifier.h
│ │ │ ├── GeometryCombiner.h
│ │ │ ├── GeometryEditor.h
│ │ │ ├── GeometryEditorOperation.h
│ │ │ ├── GeometryExtracter.h
│ │ │ ├── GeometryTransformer.h
│ │ │ ├── LinearComponentExtracter.h
│ │ │ ├── PointExtracter.h
│ │ │ ├── PolygonExtracter.h
│ │ │ ├── ShortCircuitedGeometryVisitor.h
│ │ │ └── SineStarFactory.h
│ │ ├── geomgraph
│ │ │ ├── Depth.h
│ │ │ ├── Depth.inl
│ │ │ ├── DirectedEdge.h
│ │ │ ├── DirectedEdge.inl
│ │ │ ├── DirectedEdgeStar.h
│ │ │ ├── EdgeEnd.h
│ │ │ ├── EdgeEndStar.h
│ │ │ ├── Edge.h
│ │ │ ├── EdgeIntersection.h
│ │ │ ├── EdgeIntersectionList.h
│ │ │ ├── EdgeList.h
│ │ │ ├── EdgeNodingValidator.h
│ │ │ ├── EdgeRing.h
│ │ │ ├── GeometryGraph.h
│ │ │ ├── GeometryGraph.inl
│ │ │ ├── GraphComponent.h
│ │ │ ├── index
│ │ │ │ ├── EdgeSetIntersector.h
│ │ │ │ ├── MonotoneChainEdge.h
│ │ │ │ ├── MonotoneChain.h
│ │ │ │ ├── MonotoneChainIndexer.h
│ │ │ │ ├── SegmentIntersector.h
│ │ │ │ ├── SegmentIntersector.inl
│ │ │ │ ├── SimpleEdgeSetIntersector.h
│ │ │ │ ├── SimpleMCSweepLineIntersector.h
│ │ │ │ ├── SimpleSweepLineIntersector.h
│ │ │ │ ├── SweepLineEvent.h
│ │ │ │ ├── SweepLineEventObj.h
│ │ │ │ └── SweepLineSegment.h
│ │ │ ├── Label.h
│ │ │ ├── Label.inl
│ │ │ ├── NodeFactory.h
│ │ │ ├── Node.h
│ │ │ ├── NodeMap.h
│ │ │ ├── PlanarGraph.h
│ │ │ ├── TopologyLocation.h
│ │ │ └── TopologyLocation.inl
│ │ ├── geom.h
│ │ ├── index
│ │ │ ├── bintree
│ │ │ │ ├── Bintree.h
│ │ │ │ ├── Interval.h
│ │ │ │ ├── Key.h
│ │ │ │ ├── NodeBase.h
│ │ │ │ ├── Node.h
│ │ │ │ └── Root.h
│ │ │ ├── chain
│ │ │ │ ├── MonotoneChainBuilder.h
│ │ │ │ ├── MonotoneChain.h
│ │ │ │ ├── MonotoneChainOverlapAction.h
│ │ │ │ └── MonotoneChainSelectAction.h
│ │ │ ├── intervalrtree
│ │ │ │ ├── IntervalRTreeBranchNode.h
│ │ │ │ ├── IntervalRTreeLeafNode.h
│ │ │ │ ├── IntervalRTreeNode.h
│ │ │ │ └── SortedPackedIntervalRTree.h
│ │ │ ├── ItemVisitor.h
│ │ │ ├── kdtree
│ │ │ │ ├── KdNode.h
│ │ │ │ ├── KdNodeVisitor.h
│ │ │ │ └── KdTree.h
│ │ │ ├── quadtree
│ │ │ │ ├── IntervalSize.h
│ │ │ │ ├── Key.h
│ │ │ │ ├── NodeBase.h
│ │ │ │ ├── Node.h
│ │ │ │ ├── Quadtree.h
│ │ │ │ └── Root.h
│ │ │ ├── SpatialIndex.h
│ │ │ ├── strtree
│ │ │ │ ├── AbstractNode.h
│ │ │ │ ├── AbstractSTRtree.h
│ │ │ │ ├── Boundable.h
│ │ │ │ ├── BoundablePair.h
│ │ │ │ ├── EnvelopeUtil.h
│ │ │ │ ├── GeometryItemDistance.h
│ │ │ │ ├── Interval.h
│ │ │ │ ├── ItemBoundable.h
│ │ │ │ ├── ItemDistance.h
│ │ │ │ ├── SimpleSTRdistance.h
│ │ │ │ ├── SimpleSTRnode.h
│ │ │ │ ├── SimpleSTRtree.h
│ │ │ │ ├── SIRtree.h
│ │ │ │ └── STRtree.h
│ │ │ └── sweepline
│ │ │ ├── SweepLineEvent.h
│ │ │ ├── SweepLineIndex.h
│ │ │ ├── SweepLineInterval.h
│ │ │ └── SweepLineOverlapAction.h
│ │ ├── inline.h
│ │ ├── io
│ │ │ ├── ByteOrderDataInStream.h
│ │ │ ├── ByteOrderDataInStream.inl
│ │ │ ├── ByteOrderValues.h
│ │ │ ├── CLocalizer.h
│ │ │ ├── ParseException.h
│ │ │ ├── StringTokenizer.h
│ │ │ ├── WKBConstants.h
│ │ │ ├── WKBReader.h
│ │ │ ├── WKBWriter.h
│ │ │ ├── WKTReader.h
│ │ │ ├── WKTReader.inl
│ │ │ ├── WKTWriter.h
│ │ │ └── Writer.h
│ │ ├── linearref
│ │ │ ├── ExtractLineByLocation.h
│ │ │ ├── LengthIndexedLine.h
│ │ │ ├── LengthIndexOfPoint.h
│ │ │ ├── LengthLocationMap.h
│ │ │ ├── LinearGeometryBuilder.h
│ │ │ ├── LinearIterator.h
│ │ │ ├── LinearLocation.h
│ │ │ ├── LocationIndexedLine.h
│ │ │ ├── LocationIndexOfLine.h
│ │ │ └── LocationIndexOfPoint.h
│ │ ├── math
│ │ │ └── DD.h
│ │ ├── namespaces.h
│ │ ├── noding
│ │ │ ├── BasicSegmentString.h
│ │ │ ├── BasicSegmentString.inl
│ │ │ ├── FastNodingValidator.h
│ │ │ ├── FastSegmentSetIntersectionFinder.h
│ │ │ ├── GeometryNoder.h
│ │ │ ├── IntersectionAdder.h
│ │ │ ├── IntersectionFinderAdder.h
│ │ │ ├── IteratedNoder.h
│ │ │ ├── MCIndexNoder.h
│ │ │ ├── MCIndexNoder.inl
│ │ │ ├── MCIndexSegmentSetMutualIntersector.h
│ │ │ ├── NodableSegmentString.h
│ │ │ ├── NodedSegmentString.h
│ │ │ ├── Noder.h
│ │ │ ├── NodingIntersectionFinder.h
│ │ │ ├── NodingValidator.h
│ │ │ ├── Octant.h
│ │ │ ├── OrientedCoordinateArray.h
│ │ │ ├── ScaledNoder.h
│ │ │ ├── SegmentIntersectionDetector.h
│ │ │ ├── SegmentIntersector.h
│ │ │ ├── SegmentNode.h
│ │ │ ├── SegmentNodeList.h
│ │ │ ├── SegmentPointComparator.h
│ │ │ ├── SegmentSetMutualIntersector.h
│ │ │ ├── SegmentString.h
│ │ │ ├── SegmentStringUtil.h
│ │ │ ├── SimpleNoder.h
│ │ │ ├── SinglePassNoder.h
│ │ │ ├── snap
│ │ │ │ ├── SnappingIntersectionAdder.h
│ │ │ │ ├── SnappingNoder.h
│ │ │ │ └── SnappingPointIndex.h
│ │ │ ├── snapround
│ │ │ │ ├── HotPixel.h
│ │ │ │ ├── HotPixelIndex.h
│ │ │ │ ├── HotPixel.inl
│ │ │ │ ├── MCIndexPointSnapper.h
│ │ │ │ ├── MCIndexSnapRounder.h
│ │ │ │ ├── SnapRoundingIntersectionAdder.h
│ │ │ │ └── SnapRoundingNoder.h
│ │ │ └── ValidatingNoder.h
│ │ ├── operation
│ │ │ ├── buffer
│ │ │ │ ├── BufferBuilder.h
│ │ │ │ ├── BufferInputLineSimplifier.h
│ │ │ │ ├── BufferOp.h
│ │ │ │ ├── BufferParameters.h
│ │ │ │ ├── BufferSubgraph.h
│ │ │ │ ├── OffsetCurveBuilder.h
│ │ │ │ ├── OffsetCurveSetBuilder.h
│ │ │ │ ├── OffsetSegmentGenerator.h
│ │ │ │ ├── OffsetSegmentString.h
│ │ │ │ ├── RightmostEdgeFinder.h
│ │ │ │ └── SubgraphDepthLocater.h
│ │ │ ├── distance
│ │ │ │ ├── ConnectedElementLocationFilter.h
│ │ │ │ ├── ConnectedElementPointFilter.h
│ │ │ │ ├── DistanceOp.h
│ │ │ │ ├── FacetSequence.h
│ │ │ │ ├── FacetSequenceTreeBuilder.h
│ │ │ │ ├── GeometryLocation.h
│ │ │ │ └── IndexedFacetDistance.h
│ │ │ ├── GeometryGraphOperation.h
│ │ │ ├── intersection
│ │ │ │ ├── Rectangle.h
│ │ │ │ ├── RectangleIntersectionBuilder.h
│ │ │ │ └── RectangleIntersection.h
│ │ │ ├── IsSimpleOp.h
│ │ │ ├── linemerge
│ │ │ │ ├── EdgeString.h
│ │ │ │ ├── LineMergeDirectedEdge.h
│ │ │ │ ├── LineMergeEdge.h
│ │ │ │ ├── LineMergeGraph.h
│ │ │ │ ├── LineMerger.h
│ │ │ │ └── LineSequencer.h
│ │ │ ├── overlay
│ │ │ │ ├── EdgeSetNoder.h
│ │ │ │ ├── ElevationMatrixCell.h
│ │ │ │ ├── ElevationMatrix.h
│ │ │ │ ├── LineBuilder.h
│ │ │ │ ├── MaximalEdgeRing.h
│ │ │ │ ├── MinimalEdgeRing.h
│ │ │ │ ├── MinimalEdgeRing.inl
│ │ │ │ ├── OverlayNodeFactory.h
│ │ │ │ ├── OverlayOp.h
│ │ │ │ ├── PointBuilder.h
│ │ │ │ ├── PolygonBuilder.h
│ │ │ │ ├── snap
│ │ │ │ │ ├── GeometrySnapper.h
│ │ │ │ │ ├── LineStringSnapper.h
│ │ │ │ │ ├── SnapIfNeededOverlayOp.h
│ │ │ │ │ └── SnapOverlayOp.h
│ │ │ │ └── validate
│ │ │ │ ├── FuzzyPointLocator.h
│ │ │ │ ├── OffsetPointGenerator.h
│ │ │ │ └── OverlayResultValidator.h
│ │ │ ├── overlayng
│ │ │ │ ├── Edge.h
│ │ │ │ ├── EdgeKey.h
│ │ │ │ ├── EdgeMerger.h
│ │ │ │ ├── EdgeNodingBuilder.h
│ │ │ │ ├── EdgeSourceInfo.h
│ │ │ │ ├── ElevationModel.h
│ │ │ │ ├── IndexedPointOnLineLocator.h
│ │ │ │ ├── InputGeometry.h
│ │ │ │ ├── IntersectionPointBuilder.h
│ │ │ │ ├── LineBuilder.h
│ │ │ │ ├── LineLimiter.h
│ │ │ │ ├── MaximalEdgeRing.h
│ │ │ │ ├── OverlayEdge.h
│ │ │ │ ├── OverlayEdgeRing.h
│ │ │ │ ├── OverlayGraph.h
│ │ │ │ ├── OverlayLabel.h
│ │ │ │ ├── OverlayLabeller.h
│ │ │ │ ├── OverlayMixedPoints.h
│ │ │ │ ├── OverlayNG.h
│ │ │ │ ├── OverlayNGRobust.h
│ │ │ │ ├── OverlayPoints.h
│ │ │ │ ├── OverlayUtil.h
│ │ │ │ ├── PolygonBuilder.h
│ │ │ │ ├── PrecisionReducer.h
│ │ │ │ ├── PrecisionUtil.h
│ │ │ │ ├── RingClipper.h
│ │ │ │ ├── RobustClipEnvelopeComputer.h
│ │ │ │ └── UnaryUnionNG.h
│ │ │ ├── polygonize
│ │ │ │ ├── BuildArea.h
│ │ │ │ ├── EdgeRing.h
│ │ │ │ ├── HoleAssigner.h
│ │ │ │ ├── PolygonizeDirectedEdge.h
│ │ │ │ ├── PolygonizeEdge.h
│ │ │ │ ├── PolygonizeGraph.h
│ │ │ │ └── Polygonizer.h
│ │ │ ├── predicate
│ │ │ │ ├── RectangleContains.h
│ │ │ │ ├── RectangleIntersects.h
│ │ │ │ └── SegmentIntersectionTester.h
│ │ │ ├── relate
│ │ │ │ ├── EdgeEndBuilder.h
│ │ │ │ ├── EdgeEndBundle.h
│ │ │ │ ├── EdgeEndBundleStar.h
│ │ │ │ ├── RelateComputer.h
│ │ │ │ ├── RelateNodeFactory.h
│ │ │ │ ├── RelateNodeGraph.h
│ │ │ │ ├── RelateNode.h
│ │ │ │ └── RelateOp.h
│ │ │ ├── sharedpaths
│ │ │ │ └── SharedPathsOp.h
│ │ │ ├── union
│ │ │ │ ├── CascadedPolygonUnion.h
│ │ │ │ ├── CascadedUnion.h
│ │ │ │ ├── CoverageUnion.h
│ │ │ │ ├── GeometryListHolder.h
│ │ │ │ ├── OverlapUnion.h
│ │ │ │ ├── PointGeometryUnion.h
│ │ │ │ ├── UnaryUnionOp.h
│ │ │ │ └── UnionStrategy.h
│ │ │ └── valid
│ │ │ ├── ConnectedInteriorTester.h
│ │ │ ├── ConsistentAreaTester.h
│ │ │ ├── IndexedNestedShellTester.h
│ │ │ ├── IsValidOp.h
│ │ │ ├── MakeValid.h
│ │ │ ├── QuadtreeNestedRingTester.h
│ │ │ ├── RepeatedPointRemover.h
│ │ │ ├── RepeatedPointTester.h
│ │ │ ├── SimpleNestedRingTester.h
│ │ │ ├── SweeplineNestedRingTester.h
│ │ │ └── TopologyValidationError.h
│ │ ├── planargraph
│ │ │ ├── algorithm
│ │ │ │ └── ConnectedSubgraphFinder.h
│ │ │ ├── DirectedEdge.h
│ │ │ ├── DirectedEdgeStar.h
│ │ │ ├── Edge.h
│ │ │ ├── GraphComponent.h
│ │ │ ├── Node.h
│ │ │ ├── NodeMap.h
│ │ │ ├── PlanarGraph.h
│ │ │ └── Subgraph.h
│ │ ├── precision
│ │ │ ├── CommonBits.h
│ │ │ ├── CommonBitsOp.h
│ │ │ ├── CommonBitsRemover.h
│ │ │ ├── EnhancedPrecisionOp.h
│ │ │ ├── GeometryPrecisionReducer.h
│ │ │ ├── MinimumClearance.h
│ │ │ ├── PrecisionReducerCoordinateOperation.h
│ │ │ └── SimpleGeometryPrecisionReducer.h
│ │ ├── profiler.h
│ │ ├── shape
│ │ │ └── fractal
│ │ │ ├── HilbertCode.h
│ │ │ ├── HilbertEncoder.h
│ │ │ └── MortonCode.h
│ │ ├── simplify
│ │ │ ├── DouglasPeuckerLineSimplifier.h
│ │ │ ├── DouglasPeuckerSimplifier.h
│ │ │ ├── LineSegmentIndex.h
│ │ │ ├── TaggedLineSegment.h
│ │ │ ├── TaggedLinesSimplifier.h
│ │ │ ├── TaggedLineString.h
│ │ │ ├── TaggedLineStringSimplifier.h
│ │ │ └── TopologyPreservingSimplifier.h
│ │ ├── triangulate
│ │ │ ├── DelaunayTriangulationBuilder.h
│ │ │ ├── IncrementalDelaunayTriangulator.h
│ │ │ ├── quadedge
│ │ │ │ ├── LastFoundQuadEdgeLocator.h
│ │ │ │ ├── LocateFailureException.h
│ │ │ │ ├── QuadEdge.h
│ │ │ │ ├── QuadEdgeLocator.h
│ │ │ │ ├── QuadEdgeQuartet.h
│ │ │ │ ├── QuadEdgeSubdivision.h
│ │ │ │ ├── TrianglePredicate.h
│ │ │ │ ├── TriangleVisitor.h
│ │ │ │ └── Vertex.h
│ │ │ └── VoronoiDiagramBuilder.h
│ │ ├── unload.h
│ │ ├── util
│ │ │ ├── Assert.h
│ │ │ ├── AssertionFailedException.h
│ │ │ ├── CoordinateArrayFilter.h
│ │ │ ├── GeometricShapeFactory.h
│ │ │ ├── GEOSException.h
│ │ │ ├── IllegalArgumentException.h
│ │ │ ├── IllegalStateException.h
│ │ │ ├── Interrupt.h
│ │ │ ├── Machine.h
│ │ │ ├── math.h
│ │ │ ├── TopologyException.h
│ │ │ ├── UniqueCoordinateArrayFilter.h
│ │ │ └── UnsupportedOperationException.h
│ │ ├── util.h
│ │ └── version.h
│ └── geos_c.h
└── lib
├── cmake
│ └── GEOS
│ ├── geos-config.cmake
│ ├── geos-config-version.cmake
│ ├── geos-targets.cmake
│ └── geos-targets-release.cmake
├── libgeos_c.so -> libgeos_c.so.1
├── libgeos_c.so.1 -> libgeos_c.so.1.14.3
├── libgeos_c.so.1.14.3
├── libgeos.so -> libgeos.so.3.9.3
├── libgeos.so.3.9.3
└── pkgconfig
└── geos.pc

55 directories, 439 files

举报

相关推荐

0 条评论