• imx8 yocto增加文件


    参考yocto(四)——添加程序和脚本_caodongwang的博客-CSDN博客_yocto添加自己的程序

    一、单文件代码添加编译

    1. adv@adv:/work/code/$ tree sources/meta-imx/meta-sdk/recipes-extended
    2. sources/meta-imx/meta-sdk/recipes-extended
    3. ├── hello
    4. │   ├── files
    5. │   │   └── helloworld.c
    6. │   └── hello.bb
    7. 11 directories, 15 files

    hello.bb 

    1. adv@adv:/work/code/$ cat sources/meta-imx/meta-sdk/recipes-extended/hello/hello.bb
    2. #hello.bb文件
    3. SUMMARY = "Simple helloworld application"
    4. SECTION = "examples"
    5. LICENSE = "MIT"
    6. LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
    7. # FILESPATH 为什么不要?思考一下,参考《bitbake工作流程》文章内容~~~
    8. #FILESPATH := "${THISDIR}/files:"
    9. SRC_URI = "file://helloworld.c"
    10. # 为什么要指定S变量?思考一下,参考《bitbake工作流程》文章内容~~~
    11. S = "${WORKDIR}"
    12. # 重载do_compile任务,编译工作就是下面这条命令,注意使用${CC}
    13. do_compile() {
    14. ${CC} ${LDFLAGS} helloworld.c -o helloworld
    15. }
    16. # 重载do_instal任务,安装编译成果helloworld
    17. do_install() {
    18. install -d ${D}${bindir}
    19. install -m 0755 helloworld ${D}${bindir}
    20. }
    21. # FILES 表示这个软件包,需要打包进映像的文件是helloworld,但决定这个软件包是否参与打包,需要在其他地方配置
    22. # FILES 为什么不要?思考一下,参考《bitbake工作流程》文章内容~~~
    23. #FILES_${PN} += " ${bindir}/helloworld "
    24. adv@adv:/work/code/$

    helloworld.c 

    1. adv@adv:/work/code/$ cat sources/meta-imx/meta-sdk/recipes-extended/hello/files/helloworld.c
    2. //helloworld.c文件
    3. #include <stdio.h>
    4. int main(int argc, char *argv[])
    5. {
    6. printf("Hello world!\n");
    7. return 0;
    8. }

    编译后生成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

    二、多文件代码编译

    文件列表

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended$ tree hellomake/
    2. hellomake/
    3. ├── files
    4. │   ├── helloworld.c
    5. │   ├── main.c
    6. │   └── Makefile
    7. └── hellomake.bb
    8. 1 directory, 4 files

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

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

    main.c

    1. adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat files/main.c
    2. #include
    3. extern void myhello(void);
    4. int main(int argc, char *argv[])
    5. {
    6. myhello();
    7. return 0;
    8. }

    helloworld.c

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat files/helloworld.c
    2. #include
    3. int myhello(int argc, char *argv[])
    4. {
    5. printf("Hello world!\n");
    6. return 0;
    7. }

    hellomake.bb

    1. adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/hellomake$ cat hellomake.bb
    2. #hellomake.bb文件
    3. SUMMARY = "Simple hellomake application"
    4. SECTION = "examples"
    5. LICENSE = "MIT"
    6. LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
    7. SRC_URI = " \
    8. file://main.c \
    9. file://helloworld.c \
    10. file://Makefile \
    11. "
    12. S = "${WORKDIR}"
    13. EXTRA_OEMAKE = " 'CC=${CC}' 'CFLAGS=${CFLAGS}' 'LDFLAGS=${LDFLAGS}' "
    14. EXTRA_OEMAKE_append = " 'DESTDIR=${D}/${bindir}' "
    15. #上面这条语句可以不要,下面语句改为oe_runmake DESTDIR=${D}/${bindir} install即可
    16. do_install() {
    17. oe_runmake install
    18. }
    19. # FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
    20. #FILES_${PN} += " ${bindir}/hellomake "

    使用bitbake hellomake编译生成路径

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

    三、cmake代码编译

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ tree
    2. .
    3. ├── files
    4. │   ├── CMakeLists.txt
    5. │   └── src
    6. │   ├── helloworld.c
    7. │   └── main.c
    8. └── hellocmake.bb
    9. 2 directories, 4 files

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

    CMakeLists.txt

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ cat files/CMakeLists.txt
    2. #CMakeLists.txt文件
    3. cmake_minimum_required (VERSION 3.0)
    4. project(hellocmake)
    5. set(SRC_LIST ./src/helloworld.c ./src/main.c)
    6. add_executable(hellocmake ${SRC_LIST})
    7. install(TARGETS hellocmake DESTINATION ${CMAKE_INSTALL_PREFIX}/sbin)
    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/hellocmake$ cat hellocmake.bb
    2. #hellocmake.bb文件
    3. SUMMARY = "Simple hellocmake application"
    4. SECTION = "examples"
    5. LICENSE = "MIT"
    6. LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
    7. #继承cmake类
    8. inherit cmake
    9. SRC_URI = " \
    10. file://src/main.c \
    11. file://src/helloworld.c \
    12. file://CMakeLists.txt \
    13. "
    14. S = "${WORKDIR}"
    15. # FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
    16. #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代码编译

    1. adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/helloauto$ tree
    2. .
    3. ├── files
    4. │   ├── configure.ac
    5. │   ├── Makefile.am
    6. │   └── src
    7. │   ├── helloworld.c
    8. │   ├── main.c
    9. │   └── Makefile.am
    10. └── helloauto.bb
    11. 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"

    六、添加脚本

    1. adv@adv:/work/code//sources/meta-imx/meta-sdk/recipes-extended/myscript$ tree
    2. .
    3. ├── files
    4. │   ├── ldapwhoami
    5. │   └── serialportuserinit
    6. └── scripts.bb
    7. 1 directory, 3 files

     FILESPATH目录未做修改了

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/myscript$ cat scripts.bb
    2. SUMMARY = "examples"
    3. SECTION = "examples"
    4. LICENSE = "MIT"
    5. LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
    6. #${THISDIR}表示bb文件所在路径,即meta-byosoft/meta-4u-x201/recipes-mytest/scripts
    7. #FILESPATH := "${THISDIR}/../../sources/${PN}:"
    8. S = "${WORKDIR}"
    9. SRC_URI = "\
    10. file://ldapwhoami \
    11. file://serialportuserinit \
    12. "
    13. do_install() {
    14. install -m 0755 -d ${D}${sbindir}
    15. install -m 0755 ${S}/ldapwhoami ${D}${sbindir}
    16. install -m 0755 ${S}/serialportuserinit ${D}${sbindir}
    17. }

    编译命令 bitbake scripts

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

    七、软件包打包到rootfs中

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

    1. IMAGE_INSTALL_append += "hellomake"
    2. IMAGE_INSTALL_append += "hellocmake"
    3. IMAGE_INSTALL_append += "helloauto"
    4. IMAGE_INSTALL_append += "scripts"

    八、新增geos压缩文件编译 

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

    1. adv@adv:/work/code/sources/meta-imx/meta-sdk/recipes-extended/geosaa$ tree
    2. .
    3. ├── files
    4. │   └── geos-3.9.3.tar.bz2
    5. └── geosaa.bb
    6. 1 directory, 2 files

     注意修改编译目录S

    1. #hellocmake.bb文件
    2. SUMMARY = "Simple geos_aa application"
    3. SECTION = "examples"
    4. LICENSE = "MIT"
    5. LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
    6. SRC_URI = " \
    7. file://geos-3.9.3.tar.bz2 \
    8. "
    9. #继承cmake类
    10. inherit cmake
    11. #修改了编译目录
    12. S = "${WORKDIR}/geos-3.9.3"
    13. # FILES 表示这个软件包,需要打包进映像的文件是hellomake,但决定这个软件包是否参与打包,需要在其他地方配置
    14. #FILES_${PN} += " ${sbindir}/hellocmake "

    bitbake geosaa后

    1. tmp/work/cortexa53-crypto-poky-linux/geosaa/1.0-r0/image/usr/
    2. ├── bin
    3. │   └── geos-config
    4. ├── include
    5. │   ├── geos
    6. │   │   ├── algorithm
    7. │   │   │   ├── Angle.h
    8. │   │   │   ├── Area.h
    9. │   │   │   ├── BoundaryNodeRule.h
    10. │   │   │   ├── CentralEndpointIntersector.h
    11. │   │   │   ├── Centroid.h
    12. │   │   │   ├── CGAlgorithmsDD.h
    13. │   │   │   ├── construct
    14. │   │   │   │   ├── LargestEmptyCircle.h
    15. │   │   │   │   └── MaximumInscribedCircle.h
    16. │   │   │   ├── ConvexHull.h
    17. │   │   │   ├── ConvexHull.inl
    18. │   │   │   ├── distance
    19. │   │   │   │   ├── DiscreteFrechetDistance.h
    20. │   │   │   │   ├── DiscreteHausdorffDistance.h
    21. │   │   │   │   ├── DistanceToPoint.h
    22. │   │   │   │   └── PointPairDistance.h
    23. │   │   │   ├── Distance.h
    24. │   │   │   ├── HCoordinate.h
    25. │   │   │   ├── InteriorPointArea.h
    26. │   │   │   ├── InteriorPointLine.h
    27. │   │   │   ├── InteriorPointPoint.h
    28. │   │   │   ├── Intersection.h
    29. │   │   │   ├── Length.h
    30. │   │   │   ├── LineIntersector.h
    31. │   │   │   ├── locate
    32. │   │   │   │   ├── IndexedPointInAreaLocator.h
    33. │   │   │   │   ├── PointOnGeometryLocator.h
    34. │   │   │   │   └── SimplePointInAreaLocator.h
    35. │   │   │   ├── MinimumBoundingCircle.h
    36. │   │   │   ├── MinimumDiameter.h
    37. │   │   │   ├── NotRepresentableException.h
    38. │   │   │   ├── Orientation.h
    39. │   │   │   ├── PointLocation.h
    40. │   │   │   ├── PointLocator.h
    41. │   │   │   ├── RayCrossingCounterDD.h
    42. │   │   │   ├── RayCrossingCounter.h
    43. │   │   │   └── RobustDeterminant.h
    44. │   │   ├── constants.h
    45. │   │   ├── edgegraph
    46. │   │   │   ├── EdgeGraphBuilder.h
    47. │   │   │   ├── EdgeGraph.h
    48. │   │   │   ├── HalfEdge.h
    49. │   │   │   └── MarkHalfEdge.h
    50. │   │   ├── export.h
    51. │   │   ├── geom
    52. │   │   │   ├── CoordinateArraySequenceFactory.h
    53. │   │   │   ├── CoordinateArraySequenceFactory.inl
    54. │   │   │   ├── CoordinateArraySequence.h
    55. │   │   │   ├── CoordinateFilter.h
    56. │   │   │   ├── Coordinate.h
    57. │   │   │   ├── Coordinate.inl
    58. │   │   │   ├── CoordinateList.h
    59. │   │   │   ├── CoordinateSequenceFactory.h
    60. │   │   │   ├── CoordinateSequenceFilter.h
    61. │   │   │   ├── CoordinateSequence.h
    62. │   │   │   ├── DefaultCoordinateSequenceFactory.h
    63. │   │   │   ├── Dimension.h
    64. │   │   │   ├── Envelope.h
    65. │   │   │   ├── Envelope.inl
    66. │   │   │   ├── FixedSizeCoordinateSequence.h
    67. │   │   │   ├── GeometryCollection.h
    68. │   │   │   ├── GeometryCollection.inl
    69. │   │   │   ├── GeometryComponentFilter.h
    70. │   │   │   ├── GeometryFactory.h
    71. │   │   │   ├── GeometryFactory.inl
    72. │   │   │   ├── GeometryFilter.h
    73. │   │   │   ├── Geometry.h
    74. │   │   │   ├── HeuristicOverlay.h
    75. │   │   │   ├── IntersectionMatrix.h
    76. │   │   │   ├── LinearRing.h
    77. │   │   │   ├── LineSegment.h
    78. │   │   │   ├── LineSegment.inl
    79. │   │   │   ├── LineString.h
    80. │   │   │   ├── Location.h
    81. │   │   │   ├── MultiLineString.h
    82. │   │   │   ├── MultiLineString.inl
    83. │   │   │   ├── MultiPoint.h
    84. │   │   │   ├── MultiPolygon.h
    85. │   │   │   ├── MultiPolygon.inl
    86. │   │   │   ├── Point.h
    87. │   │   │   ├── Polygon.h
    88. │   │   │   ├── Position.h
    89. │   │   │   ├── PrecisionModel.h
    90. │   │   │   ├── PrecisionModel.inl
    91. │   │   │   ├── prep
    92. │   │   │   │   ├── AbstractPreparedPolygonContains.h
    93. │   │   │   │   ├── BasicPreparedGeometry.h
    94. │   │   │   │   ├── PreparedGeometryFactory.h
    95. │   │   │   │   ├── PreparedGeometry.h
    96. │   │   │   │   ├── PreparedLineStringDistance.h
    97. │   │   │   │   ├── PreparedLineString.h
    98. │   │   │   │   ├── PreparedLineStringIntersects.h
    99. │   │   │   │   ├── PreparedLineStringNearestPoints.h
    100. │   │   │   │   ├── PreparedPoint.h
    101. │   │   │   │   ├── PreparedPolygonContains.h
    102. │   │   │   │   ├── PreparedPolygonContainsProperly.h
    103. │   │   │   │   ├── PreparedPolygonCovers.h
    104. │   │   │   │   ├── PreparedPolygonDistance.h
    105. │   │   │   │   ├── PreparedPolygon.h
    106. │   │   │   │   ├── PreparedPolygonIntersects.h
    107. │   │   │   │   └── PreparedPolygonPredicate.h
    108. │   │   │   ├── Quadrant.h
    109. │   │   │   ├── Quadrant.inl
    110. │   │   │   ├── Triangle.h
    111. │   │   │   └── util
    112. │   │   │   ├── ComponentCoordinateExtracter.h
    113. │   │   │   ├── CoordinateOperation.h
    114. │   │   │   ├── Densifier.h
    115. │   │   │   ├── GeometryCombiner.h
    116. │   │   │   ├── GeometryEditor.h
    117. │   │   │   ├── GeometryEditorOperation.h
    118. │   │   │   ├── GeometryExtracter.h
    119. │   │   │   ├── GeometryTransformer.h
    120. │   │   │   ├── LinearComponentExtracter.h
    121. │   │   │   ├── PointExtracter.h
    122. │   │   │   ├── PolygonExtracter.h
    123. │   │   │   ├── ShortCircuitedGeometryVisitor.h
    124. │   │   │   └── SineStarFactory.h
    125. │   │   ├── geomgraph
    126. │   │   │   ├── Depth.h
    127. │   │   │   ├── Depth.inl
    128. │   │   │   ├── DirectedEdge.h
    129. │   │   │   ├── DirectedEdge.inl
    130. │   │   │   ├── DirectedEdgeStar.h
    131. │   │   │   ├── EdgeEnd.h
    132. │   │   │   ├── EdgeEndStar.h
    133. │   │   │   ├── Edge.h
    134. │   │   │   ├── EdgeIntersection.h
    135. │   │   │   ├── EdgeIntersectionList.h
    136. │   │   │   ├── EdgeList.h
    137. │   │   │   ├── EdgeNodingValidator.h
    138. │   │   │   ├── EdgeRing.h
    139. │   │   │   ├── GeometryGraph.h
    140. │   │   │   ├── GeometryGraph.inl
    141. │   │   │   ├── GraphComponent.h
    142. │   │   │   ├── index
    143. │   │   │   │   ├── EdgeSetIntersector.h
    144. │   │   │   │   ├── MonotoneChainEdge.h
    145. │   │   │   │   ├── MonotoneChain.h
    146. │   │   │   │   ├── MonotoneChainIndexer.h
    147. │   │   │   │   ├── SegmentIntersector.h
    148. │   │   │   │   ├── SegmentIntersector.inl
    149. │   │   │   │   ├── SimpleEdgeSetIntersector.h
    150. │   │   │   │   ├── SimpleMCSweepLineIntersector.h
    151. │   │   │   │   ├── SimpleSweepLineIntersector.h
    152. │   │   │   │   ├── SweepLineEvent.h
    153. │   │   │   │   ├── SweepLineEventObj.h
    154. │   │   │   │   └── SweepLineSegment.h
    155. │   │   │   ├── Label.h
    156. │   │   │   ├── Label.inl
    157. │   │   │   ├── NodeFactory.h
    158. │   │   │   ├── Node.h
    159. │   │   │   ├── NodeMap.h
    160. │   │   │   ├── PlanarGraph.h
    161. │   │   │   ├── TopologyLocation.h
    162. │   │   │   └── TopologyLocation.inl
    163. │   │   ├── geom.h
    164. │   │   ├── index
    165. │   │   │   ├── bintree
    166. │   │   │   │   ├── Bintree.h
    167. │   │   │   │   ├── Interval.h
    168. │   │   │   │   ├── Key.h
    169. │   │   │   │   ├── NodeBase.h
    170. │   │   │   │   ├── Node.h
    171. │   │   │   │   └── Root.h
    172. │   │   │   ├── chain
    173. │   │   │   │   ├── MonotoneChainBuilder.h
    174. │   │   │   │   ├── MonotoneChain.h
    175. │   │   │   │   ├── MonotoneChainOverlapAction.h
    176. │   │   │   │   └── MonotoneChainSelectAction.h
    177. │   │   │   ├── intervalrtree
    178. │   │   │   │   ├── IntervalRTreeBranchNode.h
    179. │   │   │   │   ├── IntervalRTreeLeafNode.h
    180. │   │   │   │   ├── IntervalRTreeNode.h
    181. │   │   │   │   └── SortedPackedIntervalRTree.h
    182. │   │   │   ├── ItemVisitor.h
    183. │   │   │   ├── kdtree
    184. │   │   │   │   ├── KdNode.h
    185. │   │   │   │   ├── KdNodeVisitor.h
    186. │   │   │   │   └── KdTree.h
    187. │   │   │   ├── quadtree
    188. │   │   │   │   ├── IntervalSize.h
    189. │   │   │   │   ├── Key.h
    190. │   │   │   │   ├── NodeBase.h
    191. │   │   │   │   ├── Node.h
    192. │   │   │   │   ├── Quadtree.h
    193. │   │   │   │   └── Root.h
    194. │   │   │   ├── SpatialIndex.h
    195. │   │   │   ├── strtree
    196. │   │   │   │   ├── AbstractNode.h
    197. │   │   │   │   ├── AbstractSTRtree.h
    198. │   │   │   │   ├── Boundable.h
    199. │   │   │   │   ├── BoundablePair.h
    200. │   │   │   │   ├── EnvelopeUtil.h
    201. │   │   │   │   ├── GeometryItemDistance.h
    202. │   │   │   │   ├── Interval.h
    203. │   │   │   │   ├── ItemBoundable.h
    204. │   │   │   │   ├── ItemDistance.h
    205. │   │   │   │   ├── SimpleSTRdistance.h
    206. │   │   │   │   ├── SimpleSTRnode.h
    207. │   │   │   │   ├── SimpleSTRtree.h
    208. │   │   │   │   ├── SIRtree.h
    209. │   │   │   │   └── STRtree.h
    210. │   │   │   └── sweepline
    211. │   │   │   ├── SweepLineEvent.h
    212. │   │   │   ├── SweepLineIndex.h
    213. │   │   │   ├── SweepLineInterval.h
    214. │   │   │   └── SweepLineOverlapAction.h
    215. │   │   ├── inline.h
    216. │   │   ├── io
    217. │   │   │   ├── ByteOrderDataInStream.h
    218. │   │   │   ├── ByteOrderDataInStream.inl
    219. │   │   │   ├── ByteOrderValues.h
    220. │   │   │   ├── CLocalizer.h
    221. │   │   │   ├── ParseException.h
    222. │   │   │   ├── StringTokenizer.h
    223. │   │   │   ├── WKBConstants.h
    224. │   │   │   ├── WKBReader.h
    225. │   │   │   ├── WKBWriter.h
    226. │   │   │   ├── WKTReader.h
    227. │   │   │   ├── WKTReader.inl
    228. │   │   │   ├── WKTWriter.h
    229. │   │   │   └── Writer.h
    230. │   │   ├── linearref
    231. │   │   │   ├── ExtractLineByLocation.h
    232. │   │   │   ├── LengthIndexedLine.h
    233. │   │   │   ├── LengthIndexOfPoint.h
    234. │   │   │   ├── LengthLocationMap.h
    235. │   │   │   ├── LinearGeometryBuilder.h
    236. │   │   │   ├── LinearIterator.h
    237. │   │   │   ├── LinearLocation.h
    238. │   │   │   ├── LocationIndexedLine.h
    239. │   │   │   ├── LocationIndexOfLine.h
    240. │   │   │   └── LocationIndexOfPoint.h
    241. │   │   ├── math
    242. │   │   │   └── DD.h
    243. │   │   ├── namespaces.h
    244. │   │   ├── noding
    245. │   │   │   ├── BasicSegmentString.h
    246. │   │   │   ├── BasicSegmentString.inl
    247. │   │   │   ├── FastNodingValidator.h
    248. │   │   │   ├── FastSegmentSetIntersectionFinder.h
    249. │   │   │   ├── GeometryNoder.h
    250. │   │   │   ├── IntersectionAdder.h
    251. │   │   │   ├── IntersectionFinderAdder.h
    252. │   │   │   ├── IteratedNoder.h
    253. │   │   │   ├── MCIndexNoder.h
    254. │   │   │   ├── MCIndexNoder.inl
    255. │   │   │   ├── MCIndexSegmentSetMutualIntersector.h
    256. │   │   │   ├── NodableSegmentString.h
    257. │   │   │   ├── NodedSegmentString.h
    258. │   │   │   ├── Noder.h
    259. │   │   │   ├── NodingIntersectionFinder.h
    260. │   │   │   ├── NodingValidator.h
    261. │   │   │   ├── Octant.h
    262. │   │   │   ├── OrientedCoordinateArray.h
    263. │   │   │   ├── ScaledNoder.h
    264. │   │   │   ├── SegmentIntersectionDetector.h
    265. │   │   │   ├── SegmentIntersector.h
    266. │   │   │   ├── SegmentNode.h
    267. │   │   │   ├── SegmentNodeList.h
    268. │   │   │   ├── SegmentPointComparator.h
    269. │   │   │   ├── SegmentSetMutualIntersector.h
    270. │   │   │   ├── SegmentString.h
    271. │   │   │   ├── SegmentStringUtil.h
    272. │   │   │   ├── SimpleNoder.h
    273. │   │   │   ├── SinglePassNoder.h
    274. │   │   │   ├── snap
    275. │   │   │   │   ├── SnappingIntersectionAdder.h
    276. │   │   │   │   ├── SnappingNoder.h
    277. │   │   │   │   └── SnappingPointIndex.h
    278. │   │   │   ├── snapround
    279. │   │   │   │   ├── HotPixel.h
    280. │   │   │   │   ├── HotPixelIndex.h
    281. │   │   │   │   ├── HotPixel.inl
    282. │   │   │   │   ├── MCIndexPointSnapper.h
    283. │   │   │   │   ├── MCIndexSnapRounder.h
    284. │   │   │   │   ├── SnapRoundingIntersectionAdder.h
    285. │   │   │   │   └── SnapRoundingNoder.h
    286. │   │   │   └── ValidatingNoder.h
    287. │   │   ├── operation
    288. │   │   │   ├── buffer
    289. │   │   │   │   ├── BufferBuilder.h
    290. │   │   │   │   ├── BufferInputLineSimplifier.h
    291. │   │   │   │   ├── BufferOp.h
    292. │   │   │   │   ├── BufferParameters.h
    293. │   │   │   │   ├── BufferSubgraph.h
    294. │   │   │   │   ├── OffsetCurveBuilder.h
    295. │   │   │   │   ├── OffsetCurveSetBuilder.h
    296. │   │   │   │   ├── OffsetSegmentGenerator.h
    297. │   │   │   │   ├── OffsetSegmentString.h
    298. │   │   │   │   ├── RightmostEdgeFinder.h
    299. │   │   │   │   └── SubgraphDepthLocater.h
    300. │   │   │   ├── distance
    301. │   │   │   │   ├── ConnectedElementLocationFilter.h
    302. │   │   │   │   ├── ConnectedElementPointFilter.h
    303. │   │   │   │   ├── DistanceOp.h
    304. │   │   │   │   ├── FacetSequence.h
    305. │   │   │   │   ├── FacetSequenceTreeBuilder.h
    306. │   │   │   │   ├── GeometryLocation.h
    307. │   │   │   │   └── IndexedFacetDistance.h
    308. │   │   │   ├── GeometryGraphOperation.h
    309. │   │   │   ├── intersection
    310. │   │   │   │   ├── Rectangle.h
    311. │   │   │   │   ├── RectangleIntersectionBuilder.h
    312. │   │   │   │   └── RectangleIntersection.h
    313. │   │   │   ├── IsSimpleOp.h
    314. │   │   │   ├── linemerge
    315. │   │   │   │   ├── EdgeString.h
    316. │   │   │   │   ├── LineMergeDirectedEdge.h
    317. │   │   │   │   ├── LineMergeEdge.h
    318. │   │   │   │   ├── LineMergeGraph.h
    319. │   │   │   │   ├── LineMerger.h
    320. │   │   │   │   └── LineSequencer.h
    321. │   │   │   ├── overlay
    322. │   │   │   │   ├── EdgeSetNoder.h
    323. │   │   │   │   ├── ElevationMatrixCell.h
    324. │   │   │   │   ├── ElevationMatrix.h
    325. │   │   │   │   ├── LineBuilder.h
    326. │   │   │   │   ├── MaximalEdgeRing.h
    327. │   │   │   │   ├── MinimalEdgeRing.h
    328. │   │   │   │   ├── MinimalEdgeRing.inl
    329. │   │   │   │   ├── OverlayNodeFactory.h
    330. │   │   │   │   ├── OverlayOp.h
    331. │   │   │   │   ├── PointBuilder.h
    332. │   │   │   │   ├── PolygonBuilder.h
    333. │   │   │   │   ├── snap
    334. │   │   │   │   │   ├── GeometrySnapper.h
    335. │   │   │   │   │   ├── LineStringSnapper.h
    336. │   │   │   │   │   ├── SnapIfNeededOverlayOp.h
    337. │   │   │   │   │   └── SnapOverlayOp.h
    338. │   │   │   │   └── validate
    339. │   │   │   │   ├── FuzzyPointLocator.h
    340. │   │   │   │   ├── OffsetPointGenerator.h
    341. │   │   │   │   └── OverlayResultValidator.h
    342. │   │   │   ├── overlayng
    343. │   │   │   │   ├── Edge.h
    344. │   │   │   │   ├── EdgeKey.h
    345. │   │   │   │   ├── EdgeMerger.h
    346. │   │   │   │   ├── EdgeNodingBuilder.h
    347. │   │   │   │   ├── EdgeSourceInfo.h
    348. │   │   │   │   ├── ElevationModel.h
    349. │   │   │   │   ├── IndexedPointOnLineLocator.h
    350. │   │   │   │   ├── InputGeometry.h
    351. │   │   │   │   ├── IntersectionPointBuilder.h
    352. │   │   │   │   ├── LineBuilder.h
    353. │   │   │   │   ├── LineLimiter.h
    354. │   │   │   │   ├── MaximalEdgeRing.h
    355. │   │   │   │   ├── OverlayEdge.h
    356. │   │   │   │   ├── OverlayEdgeRing.h
    357. │   │   │   │   ├── OverlayGraph.h
    358. │   │   │   │   ├── OverlayLabel.h
    359. │   │   │   │   ├── OverlayLabeller.h
    360. │   │   │   │   ├── OverlayMixedPoints.h
    361. │   │   │   │   ├── OverlayNG.h
    362. │   │   │   │   ├── OverlayNGRobust.h
    363. │   │   │   │   ├── OverlayPoints.h
    364. │   │   │   │   ├── OverlayUtil.h
    365. │   │   │   │   ├── PolygonBuilder.h
    366. │   │   │   │   ├── PrecisionReducer.h
    367. │   │   │   │   ├── PrecisionUtil.h
    368. │   │   │   │   ├── RingClipper.h
    369. │   │   │   │   ├── RobustClipEnvelopeComputer.h
    370. │   │   │   │   └── UnaryUnionNG.h
    371. │   │   │   ├── polygonize
    372. │   │   │   │   ├── BuildArea.h
    373. │   │   │   │   ├── EdgeRing.h
    374. │   │   │   │   ├── HoleAssigner.h
    375. │   │   │   │   ├── PolygonizeDirectedEdge.h
    376. │   │   │   │   ├── PolygonizeEdge.h
    377. │   │   │   │   ├── PolygonizeGraph.h
    378. │   │   │   │   └── Polygonizer.h
    379. │   │   │   ├── predicate
    380. │   │   │   │   ├── RectangleContains.h
    381. │   │   │   │   ├── RectangleIntersects.h
    382. │   │   │   │   └── SegmentIntersectionTester.h
    383. │   │   │   ├── relate
    384. │   │   │   │   ├── EdgeEndBuilder.h
    385. │   │   │   │   ├── EdgeEndBundle.h
    386. │   │   │   │   ├── EdgeEndBundleStar.h
    387. │   │   │   │   ├── RelateComputer.h
    388. │   │   │   │   ├── RelateNodeFactory.h
    389. │   │   │   │   ├── RelateNodeGraph.h
    390. │   │   │   │   ├── RelateNode.h
    391. │   │   │   │   └── RelateOp.h
    392. │   │   │   ├── sharedpaths
    393. │   │   │   │   └── SharedPathsOp.h
    394. │   │   │   ├── union
    395. │   │   │   │   ├── CascadedPolygonUnion.h
    396. │   │   │   │   ├── CascadedUnion.h
    397. │   │   │   │   ├── CoverageUnion.h
    398. │   │   │   │   ├── GeometryListHolder.h
    399. │   │   │   │   ├── OverlapUnion.h
    400. │   │   │   │   ├── PointGeometryUnion.h
    401. │   │   │   │   ├── UnaryUnionOp.h
    402. │   │   │   │   └── UnionStrategy.h
    403. │   │   │   └── valid
    404. │   │   │   ├── ConnectedInteriorTester.h
    405. │   │   │   ├── ConsistentAreaTester.h
    406. │   │   │   ├── IndexedNestedShellTester.h
    407. │   │   │   ├── IsValidOp.h
    408. │   │   │   ├── MakeValid.h
    409. │   │   │   ├── QuadtreeNestedRingTester.h
    410. │   │   │   ├── RepeatedPointRemover.h
    411. │   │   │   ├── RepeatedPointTester.h
    412. │   │   │   ├── SimpleNestedRingTester.h
    413. │   │   │   ├── SweeplineNestedRingTester.h
    414. │   │   │   └── TopologyValidationError.h
    415. │   │   ├── planargraph
    416. │   │   │   ├── algorithm
    417. │   │   │   │   └── ConnectedSubgraphFinder.h
    418. │   │   │   ├── DirectedEdge.h
    419. │   │   │   ├── DirectedEdgeStar.h
    420. │   │   │   ├── Edge.h
    421. │   │   │   ├── GraphComponent.h
    422. │   │   │   ├── Node.h
    423. │   │   │   ├── NodeMap.h
    424. │   │   │   ├── PlanarGraph.h
    425. │   │   │   └── Subgraph.h
    426. │   │   ├── precision
    427. │   │   │   ├── CommonBits.h
    428. │   │   │   ├── CommonBitsOp.h
    429. │   │   │   ├── CommonBitsRemover.h
    430. │   │   │   ├── EnhancedPrecisionOp.h
    431. │   │   │   ├── GeometryPrecisionReducer.h
    432. │   │   │   ├── MinimumClearance.h
    433. │   │   │   ├── PrecisionReducerCoordinateOperation.h
    434. │   │   │   └── SimpleGeometryPrecisionReducer.h
    435. │   │   ├── profiler.h
    436. │   │   ├── shape
    437. │   │   │   └── fractal
    438. │   │   │   ├── HilbertCode.h
    439. │   │   │   ├── HilbertEncoder.h
    440. │   │   │   └── MortonCode.h
    441. │   │   ├── simplify
    442. │   │   │   ├── DouglasPeuckerLineSimplifier.h
    443. │   │   │   ├── DouglasPeuckerSimplifier.h
    444. │   │   │   ├── LineSegmentIndex.h
    445. │   │   │   ├── TaggedLineSegment.h
    446. │   │   │   ├── TaggedLinesSimplifier.h
    447. │   │   │   ├── TaggedLineString.h
    448. │   │   │   ├── TaggedLineStringSimplifier.h
    449. │   │   │   └── TopologyPreservingSimplifier.h
    450. │   │   ├── triangulate
    451. │   │   │   ├── DelaunayTriangulationBuilder.h
    452. │   │   │   ├── IncrementalDelaunayTriangulator.h
    453. │   │   │   ├── quadedge
    454. │   │   │   │   ├── LastFoundQuadEdgeLocator.h
    455. │   │   │   │   ├── LocateFailureException.h
    456. │   │   │   │   ├── QuadEdge.h
    457. │   │   │   │   ├── QuadEdgeLocator.h
    458. │   │   │   │   ├── QuadEdgeQuartet.h
    459. │   │   │   │   ├── QuadEdgeSubdivision.h
    460. │   │   │   │   ├── TrianglePredicate.h
    461. │   │   │   │   ├── TriangleVisitor.h
    462. │   │   │   │   └── Vertex.h
    463. │   │   │   └── VoronoiDiagramBuilder.h
    464. │   │   ├── unload.h
    465. │   │   ├── util
    466. │   │   │   ├── Assert.h
    467. │   │   │   ├── AssertionFailedException.h
    468. │   │   │   ├── CoordinateArrayFilter.h
    469. │   │   │   ├── GeometricShapeFactory.h
    470. │   │   │   ├── GEOSException.h
    471. │   │   │   ├── IllegalArgumentException.h
    472. │   │   │   ├── IllegalStateException.h
    473. │   │   │   ├── Interrupt.h
    474. │   │   │   ├── Machine.h
    475. │   │   │   ├── math.h
    476. │   │   │   ├── TopologyException.h
    477. │   │   │   ├── UniqueCoordinateArrayFilter.h
    478. │   │   │   └── UnsupportedOperationException.h
    479. │   │   ├── util.h
    480. │   │   └── version.h
    481. │   └── geos_c.h
    482. └── lib
    483. ├── cmake
    484. │   └── GEOS
    485. │   ├── geos-config.cmake
    486. │   ├── geos-config-version.cmake
    487. │   ├── geos-targets.cmake
    488. │   └── geos-targets-release.cmake
    489. ├── libgeos_c.so -> libgeos_c.so.1
    490. ├── libgeos_c.so.1 -> libgeos_c.so.1.14.3
    491. ├── libgeos_c.so.1.14.3
    492. ├── libgeos.so -> libgeos.so.3.9.3
    493. ├── libgeos.so.3.9.3
    494. └── pkgconfig
    495. └── geos.pc
    496. 55 directories, 439 files

  • 相关阅读:
    Javaweb之HTML,CSS的详细解析
    4.力扣c++刷题-->删除有序数组中的重复项 II
    Python(win+r--mspaint——打开画图)
    差分约束学习笔记
    【Hack The Box】linux练习-- Jarvis
    css的继承性
    部署BXERP生产服务器运行环境所需软件
    1143. 最长公共子序列(C++实现)
    2022-07-27
    typecho 反序列化漏洞复现
  • 原文地址:https://blog.csdn.net/ldinvicible/article/details/126872511