You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win7+VS2015 x64环境下编译OSG3.4.1+OSGEarth2.10的OSGEarthQT方法及问题求助

在Windows 7 + VS2015 x64环境下编译osgEarthQt的解决方案(基于OSG3.4.1与osgEarth2.10)

我之前帮不少开发者解决过osgEarthQt的编译问题,结合你的环境配置,给你梳理一套可行的步骤,同时针对性解决你遇到的「无安装项目」「找不到Lib文件」的问题:

一、前置环境检查

在动手编译前,先确认这些依赖项是否准备到位:

  • OSG3.4.1 x64编译完成:必须是x64版本,且已经生成了完整的Lib、DLL和头文件,记住它的编译输出路径(比如D:\OSG3.4.1_x64)。
  • osgEarth2.10源码下载完成:确保源码版本和OSG匹配(osgEarth2.10对OSG3.4.x兼容性很好),建议用2.10稳定版而非git最新分支。
  • Qt5.x x64版本:Win7不支持Qt5.15及以上版本,推荐用Qt5.9.x(比如5.9.9)的MSVC2015 x64版本,安装时勾选MSVC2015 64-bit组件,同时在VS2015中安装Qt VS Tools插件方便后续配置。

二、用CMake配置osgEarthQt编译项目

直接用VS打开源码容易出现配置遗漏,推荐用CMake生成标准的VS2015项目:

  1. 打开CMake-GUI,设置:
    • 「Where is the source code」:指向osgEarth2.10的根目录(比如D:\osgearth-2.10)
    • 「Where to build the binaries」:新建一个空的x64构建目录(比如D:\osgearth-2.10_build_x64)
  2. 点击「Configure」,选择Visual Studio 14 2015 Win64作为编译器,点击「Finish」开始配置。
  3. 配置过程中手动设置这些关键参数(若CMake提示缺失依赖):
    • OSG_DIR:指向OSG3.4.1的x64编译输出目录(比如D:\OSG3.4.1_x64)
    • Qt5_DIR:指向Qt5.x的cmake配置目录(比如D:\Qt\5.9.9\msvc2015_64\lib\cmake\Qt5)
    • 勾选OSGEARTH_BUILD_QT选项(这是编译osgEarthQt的核心开关,默认可能未勾选!)
    • 确认OSGEARTH_USE_QT5被自动设为ON,且Qt的Core、Gui、Widgets模块都被正确识别(CMake会显示绿色对勾)
  4. 无错误后,点击「Generate」生成VS2015解决方案文件。

三、编译osgEarthQt项目

  1. 打开生成的osgEarth.sln解决方案,在VS顶部选择Release x64或Debug x64配置(和你OSG的编译配置保持一致)。
  2. 先编译核心依赖模块:右键解决方案,选择「生成解决方案」,等待osgEarthCore、osgEarthUtil等模块编译完成。
  3. 单独编译osgEarthQt模块:在解决方案资源管理器中找到osgEarthQt项目,右键选择「生成」。

四、解决你遇到的两个核心问题

1. 编译后未生成INSTALL项目

  • 检查CMake配置中是否设置了CMAKE_SKIP_INSTALL_RULES=ON,如果是,改成OFF,重新点击「Configure」→「Generate」即可生成INSTALL项目。
  • 如果不想重新生成,也可以手动复制文件:
    • 头文件:从osgEarth源码的src/osgEarthQt目录复制所有.h文件到你的项目头文件目录。
    • Lib/DLL文件:从构建目录的lib/Release(或Debug)和bin/Release(或Debug)文件夹中复制osgEarthQt.lib和osgEarthQt.dll。

2. 找不到对应的Lib文件

  • 首先确认CMake中是否勾选了OSGEARTH_BUILD_QT:如果没勾选,osgEarthQt模块不会被编译,自然没有Lib文件,回到CMake步骤重新配置。
  • 检查VS的编译配置是否为x64:如果不小心选了Win32,Lib文件会生成在x86的输出目录里,切换到x64重新编译。
  • 排查编译错误:如果编译过程中出现Qt头文件找不到、OSG库链接失败等错误,Lib文件不会生成:
    • 确保Qt的Qt5_DIR路径正确,或者在VS的项目属性中手动添加Qt的头文件和库路径。
    • 确认OSG的OSG_DIR指向的是x64版本的编译目录,且OSG的Lib文件存在。
    • 确保osgEarth的核心模块(比如osgEarthCore)已经编译成功,osgEarthQt依赖这些模块。

五、验证编译结果

创建一个简单的Qt测试项目:

  1. 在VS中新建Qt Widgets Application(x64配置)。
  2. 在项目属性中:
    • 「VC++目录」→「包含目录」添加OSG的头文件目录、osgEarth的头文件目录、osgEarthQt的头文件目录。
    • 「VC++目录」→「库目录」添加OSG的Lib目录、osgEarth的Lib目录、osgEarthQt的Lib目录。
    • 「链接器」→「输入」添加osgEarthQt.lib(Debug版加osgEarthQt_d.lib)以及OSG和osgEarth的其他依赖Lib。
  3. 在主窗口中添加osgEarthQt::ViewerWidget控件,运行项目,如果能正常显示地球场景,说明编译成功。

内容的提问来源于stack exchange,提问作者Jin Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:11:22