欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MacOS下编译osgEarth

程序员文章站 2022-07-01 21:00:40
...

MacOS下编译osgEarth

一: 所需工具

  • XCode(12.5.1,实际不需要那么高的版本, 只是我比较喜欢一直更新软件)

  • CMake-gui(我用的是3.8.2)

  • HomeBrew(MaxOS下的命令行包下载工具, 非常好用)

二:编译流程

  • 默认OSG环境已经准备完成, 也可以直接通过HomeBrew安装, 命令为 “ brew install open-scene-graph”

  • 下载好所需要的工具以及osgearth源码(我编译的是3.2.0版本)

  • 用homebrew安装所需要的依赖包括gdal curl zlib 等

  • 用文本编辑器打开osgEarth源码目录下的CMakeFileLists.txt文件, 在第一行

    CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR)

    下面添加如下内容

    set(CMAKE_C_COMPILER "gcc")
    set(CMAKE_CXX_COMPILER "g++")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall") 
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall")
    set(CMAKE_CXX_STANDARD 11)  # 设置 c++ 语言标准
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
  • 打开cmake-gui将CMakeFileLists.txt拖入其中, 默认生成源码目录和构建输出目录, 一般在源码目录下创建一个build文件夹作为构建输出目录

  • 点击Configure, 选择弹出的窗口中选择Xcode, 多次点击Configure并检查输出, 直到出现“Configuring done”后,点击Generate,随后“Open Project”.

  • 在Xcode软件中点击 File->Project Settings->Shared Project Settings->Build System-> “Legacy Build System (Deptecated)”->Done

  • 点击Product->Scheme, 选择ALL_BUILD

  • 点击Product->Scheme->Edit Schemes…, 根据需要将Build Configuration改为Debug或Release->Close

  • cmd+B开始构建

  • 构建成功后在build/bin和build/lib文件夹中可以看到相应的库和可执行程序, 将其分别拷贝到/usr/local/bin和/usr/local/lib中, 最后在终端输入osgearth_version测试是否成功

问题

  • 编译过程中如果代码报错, 一般是CMakeLists.txt文件没写对, 或者cmake-gui中部分路径配置错了,总之别想着改源码, 我之前就是越改错越多.
  • gdal的编译高版本会涉及到proj的依赖问题, 推荐使用2.x.x版, 用homebrew的话不会有这个问题
  • cmake版本不要过高, 我用3.20.x版本的时候, Congifure问题很多很多