参考教程: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:
6. Generate:
7. Open Project:
选择release模式;右键ALL_BUILD-->生成, 漫长的等待,约1.5小时。
8. 报错:
1)nvtt.lib (CompressionOptions.obj) : error LNK2001: 无法解析的外部符号"int __cdecl nvAbort:"---尚未解决
错误定位:当生成Plugins nvtt 这个插件时报错。
可能原因1: nvtt.lib的编译格式不对,重新下载nvtt源代码,重新编译
执行结果:不work.
可能原因2:将nvtt的lib库手动添加到Plugins nvtt项目的链接库中
修改过程:https://www.cnblogs.com/hik-wxy/p/14715116.html
修改结果:不work。
具体细节如下:
1) 右键对应项目→属性→VC++目录→库目录
2) 右键对应项目→属性→链接器→输入→附加依赖项
填充内容为:
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(超详细)