编译OSG和osgearth遇到的问题

时间:2024-03-24 09:58:06

错误1:编译时提示不识别__imp_closesocket相关符号

在plugins-gdal设置属性,链接库ws2_32.lib,路径为C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64

 

错误2:编译时提示不识别SQL...等相关符号

在plugins-gdal设置属性,链接库odbc32.lib、odbccp32.lib、odbcbcp.lib,路径为C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64

 

错误3无法打开文件“mfc120d.lib”、“mfc120.lib”

下载vc_mbcsmfc.exe,安装mfc组件

 

错误4无法打开包括文件: “unistd.h”: No such file or directory

找到#include <unistd.h>,注释掉这一行

 

错误5检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:值“0”不匹配值“2”

(1) vs2010中,debug模式下默认值为2,release的模式的默认值为0 。其设定方法如下:项目-〉属性-〉配置属性-〉C/C++ -〉预处理器-〉预处理定义 -〉添加“_ITERATOR_DEBUG_LEVEL=0”。

(2) 设置报错的那个项目属性,链接库文件添加d结尾

 

错误6:无法解析的外部符号 "private: void __cdecl nv::String::setString(char const *)" ......以及所有的nv打头的错误

编译nvidia-texture-tools-2.1.0,里面的项目都生成静态库,然后设置plugins-nvcc项目属性,链接器->输入->填写nv开头库的名称和bc6h.lib、bc7.lib。


错误7无法打开输入文件“optimized.lib”

从OpenSceneGraph-3.4.0\CMakeModules拷贝一份FindZLIB.cmake放到osgEarth2.8.0\CMakeModules并修改,将红框中的部分删除,即不使用CMake自带的FindZLIB.cmake。 

编译OSG和osgearth遇到的问题

也可以手动删除,找到编译出问题的项目属性,删除optimized.zib、debug.lib