vs环境中编译osg以及osgQt
1、下载 OpenSceneGraph获取源代码
您可以通过以下方式获取 OSG 源代码:
[*] 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases
[*] 利用 git 克隆:
git clone https://github.com/openscenegraph/OpenSceneGraph.git
2、下载必要的第三方依靠库
依靠库 https://github.com/bjornblissing/osg-3rdparty-cmake 如果git下载下来,发现第三方库是空的,没有源码。看到目录下download_dependencies.bat这个脚本文件,里面是第三放库的具体下载地址,挨个下载。
3、编译第三方依靠库
3.1 打开cmake,填入source目录以及build目录,点击configure,选择VS2015-64位编译器,configure完成后,按照要求配置(curl、zlib等库路径选择)进行再次configure,直到没有红色高亮显示。
标题:
1)配置过程中大概会出现“libtiff/tif config.vc.hdoes not exist”错误。
解决方法:
tiffconf.h.cmake.in复制修改成tiffconf.vc.h
tif_config.h.cmake.in复制修改成tif_config.vc.h
2)Unsupported size_t size; please submit a bug report
解决方法:逼迫更换,必要注意size_t占4字节/8字节情况,根据个人电脑配置。
#if !defined(__MINGW32__)
#define TIFF_SIZE_FORMAT "zu"
#endif
#if SIZEOF_SIZE_T == 8
#define TIFF_SSIZE_FORMAT PRId64
#if defined(__MINGW32__)
# define TIFF_SIZE_FORMAT PRIu64
#endif
#elif SIZEOF_SIZE_T == 4
#define TIFF_SSIZE_FORMAT PRId32
#if defined(__MINGW32__)
# define TIFF_SIZE_FORMAT PRIu32
#endif
#else
//#error "Unsupported size_t size; please submit a bug report"
#define TIFF_SSIZE_FORMAT PRId64
#if defined(__MINGW32__)
# define TIFF_SIZE_FORMAT PRIu64
#endif
#endif 3)SSIZE_T或TIFF_SSIZE_T为界说
解决方法:在tiffconf.h文件中增加界说。
#define HAVE_WINDOWS_H 1
#define HAVE_FCNTL_H 1
#define HAVE_STRINGS_H 1
#define HAVE_STDINT_H 1
#include <basetsd.h>// 确保包含 Windows 基础类型
typedef SSIZE_T ptrdiff_t;// 或直接使用 ptrdiff_t
#define TIFF_SSIZE_T ptrdiff_t
/* Define to the native CPU bit order (0: little-endian, 1: big-endian). */
#define HOST_FILLORDER 0// 或 1,取决于你的系统(x86/x64(Windows/Linux):通常是 0(小端,Little-Endian);些嵌入式系统/ARM(可能大端):可能是 1(Big-Endian)) 4)tiff库中有些函数没有导出,但是OpenSceneGraph引用了,直接打开libtiff.def文件添加函数。
3.2 打开工程编译
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]