win10 + vs2017 + cmake3.17编译OSG-3.4.1

参考教程:https://blog.csdn.net/bailang_zhizun/article/details/120992244

1. 下载与解压 

2. 修改configure

1)Ungrouped Entries -- 》ACTUAL_3RDPARTY_DIR:

         设置为: D:/Depend_3rd_party/OSG341/3rdParty

2) Ungrouped Entries--》SDL_INCLUDE_DIR:

        设置为: D:/Depend_3rd_party/SDL2/install/include/SDL2  (自己编译的)

3)Ungrouped Entries--》SDL2MAIN_LIBRARY:

        设置为:D:/Depend_3rd_party/SDL2/install/lib/SDL2main.lib  (自己编译的)

4)Ungrouped Entries--》SDLMAIN_LIBRARY:

        设置为:D:/Depend_3rd_party/SDL2/install/lib/SDL2main.lib   (自己编译的)

5)BUILD-->BUILD_OSG_EXAMPLES

        设置为:画上√

6)CMAKE-->CMAKE_CONFIGURATION_TYPES

        设置为:Debug;Release

7)CMAKE --> CMAKE_INSTALL_PREFIX:(重要)

        设置为:D:/Depend_3rd_party/OSG341/install (自己创建的文件夹)

8)FREETYPE(不配置也可以)

9)GDAL(不配置也可以)

10)SDL2

3. Configure:

4. 再次更新Ungrouped Entries:

        1) BUILD_MFC_EXAMPLES  打钩(切记!!!VS2017一定要安装MFC开发组件!!!)

        2) SDL2_LIBRARY 设置为(不更新也可以)

D:/Depend_3rd_party/SDL2/install/lib/SDL2main.lib;D:/Depend_3rd_party/SDL2/install/lib/SDL2.lib;D:/Depend_3rd_party/SDL2/install/lib/SDL2d.lib;D:/Depend_3rd_party/SDL2/install/lib/SDL2maind.lib 

 5. 再次Configure:

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第1张图片

6. Generate:

 win10 + vs2017 + cmake3.17编译OSG-3.4.1_第2张图片

7. Open Project:

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第3张图片

 选择release模式;右键ALL_BUILD-->生成, 漫长的等待,约1.5小时。

8. 报错:

1)nvtt.lib (CompressionOptions.obj) : error LNK2001: 无法解析的外部符号"int __cdecl nvAbort:"---尚未解决

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第4张图片

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第5张图片

错误定位:当生成Plugins nvtt 这个插件时报错。

可能原因1: nvtt.lib的编译格式不对,重新下载nvtt源代码,重新编译

执行结果:不work.

可能原因2:将nvtt的lib库手动添加到Plugins nvtt项目的链接库中

修改过程:https://www.cnblogs.com/hik-wxy/p/14715116.html

修改结果:不work。

具体细节如下:

        1) 右键对应项目→属性→VC++目录→库目录

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第6张图片

        2) 右键对应项目→属性→链接器→输入→附加依赖项 

win10 + vs2017 + cmake3.17编译OSG-3.4.1_第7张图片 

填充内容为: 

nvtt.lib
nvtt_d.lib
nvcore.lib
nvcore_d.lib
nvimage.lib
nvimage_d.lib
nvmath.lib
nvmath_d.lib
nvthread.lib
nvthread_d.lib
squish.lib
squish_d.lib
bc7.lib
bc7_d.lib
bc6h.lib
bc6h_d.lib

最终解决方案:

以上两种方法都不work。因为这个项目是一个插件,用于NVIDIA显卡支持osg显示,不是特别重要,所以在再一次的编译过程中,在cmake-gui界面上,删除了NVTT的配置信息,这样,在编译的时候就不编译这个插件了。

 

参考教程:

[1] windows10 下OSG+VS2017环境搭建-CSDN博客

[2]  OSG环境部署 OSG3.6.5+vs2017+win10_x64(超详细)

你可能感兴趣的:(linux,运维,服务器)