参考yocto(四)——添加程序和脚本_caodongwang的博客-CSDN博客_yocto添加自己的程序
一、单文件代码添加编译
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
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
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
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条)