OSG + vusual studio 2013+win8 使用cmake 配置 问题
来源:互联网 发布:淘宝买家秀福利木耳 编辑:程序博客网 时间:2024/04/30 01:38
能下载的链接 稳定发布版 3.4.0
路径 :http://www.openscenegraph.org/downloads/
Data:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/data/OpenSceneGraph-Data-3.4.0.zip
源码:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/source/OpenSceneGraph-3.4.0.zip
有博文关于 win7的介绍,找了很久第三库,链接里面都无法下载 。
OSG+VS2013+Win7 环境搭建 (含第三方库下载链接)
OSG+VS2013+Win7 环境搭建,osgvs2013
Win7+VS2013环境下编译OpenSceneGraph-3.4.0
第三方库链接
osg(OpenSceneGraph)如何安装 https://zhidao.baidu.com/question/134994354599860285.html
http://blog.csdn.net/allenjiao/article/details/52238309
开始时只找到了 2005年的版本,
按照流程中的步骤三 进行cmake 配置操作:
后来cmake 时候报错如下:
参考最后一篇 :
Win7+VS2013环境下编译OpenSceneGraph-3.4.0
(后文大部分为转载内容)
1. 源码下载。
编译结果:271个错误。 编译耗时3个小时
------ 已启动全部重新生成: 项目: Plugins zip, 配置: Debug Win32 ------
Building Custom Rule D:/工具/osg/OpenSceneGraph-3.4.0/src/osgPlugins/zip/CMakeLists.txt
CMake does not need to re-run because D:\宸ュ叿\osg\OpenSceneGraph-3.4.0\build\src\osgPlugins\zip\CMakeFiles\generate.stamp is up-to-date.
unzip.cpp
ZipArchive.cpp
ReaderWriterZIP.cpp
正在生成代码...
osgdb_zip.vcxproj -> D:\工具\osg\OpenSceneGraph-3.4.0\build\bin\osgPlugins-3.4.0\osgdb_zipd.dll
------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Release Win32 ------
Building Custom Rule D:/工具/osg/OpenSceneGraph-3.4.0/CMakeLists.txt
CMake does not need to re-run because D:\宸ュ叿\osg\OpenSceneGraph-3.4.0\build\CMakeFiles\generate.stamp is up-to-date.
------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Debug Win32 ------
Building Custom Rule D:/工具/osg/OpenSceneGraph-3.4.0/CMakeLists.txt
CMake does not need to re-run because D:\宸ュ叿\osg\OpenSceneGraph-3.4.0\build\CMakeFiles\generate.stamp is up-to-date.
========== 全部重新生成: 成功 426 个,失败 108 个,跳过 0 个==========
解决方案 :
我的环境为: Win764 + VS2005 + zlib1.2.8
zlib1.2.8我使用VS2010来编译。
-------------------------------------------------------------------------------------------------
我导入zlib库的代码如下:
#include "zlib128/zlib.h"
// #pragma comment(lib, "zlib128/zlibwapi.lib") // 链接zlib动态库
#pragma comment(lib, "zlib128/zlibstat.lib") // 链接zlib静态库
编译使用zlib的工程,出现错误信息如下:
1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflateEnd
1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflate1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflateInit2_
1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflateEnd
1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflate
1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflateInit2_
fatal error LNK1120: 6 个无法解析的外部命令error LNK2019: 无法解析的外部符号 _deflate
从错误信息可以看出,在我使用的每个zlib库函数的前面都多出了一个下划线,如 _deflate,
通过查看zlibwapi.dll的导出函数,发现相应的函数前面并没有下划线,也就难道编译会链接错误了。
------------------------------------------------------------------------------------------------------------------------------------------------------
解决思路:
zlib.h头文件,定义了zlib库的导出函数原型,如:ZEXTERN intZEXPORT deflateEnd OF((z_streamp strm));
注意红色的ZEXPORT ,其原型在zconf.h文件里面定义:
#ifndef ZEXPORT
# define ZEXPORT
#endif
看到了吗,默认的ZEXPORT宏,只是个空符号罢了,而实际是其应该表示函数的调用方式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
解决方法:
在zconf.h文件将ZEXPORT宏的定义改成下面的形式即可:
#ifndef ZEXPORT
# define ZEXPORT WINAPI
#endif
-----------------------------------------------------------------------------------------------------------------------------------------------------------
第二次进行编译 :
编译结果 :
成功 506 个, 失败18个。 用时几分钟,很快,只是对第一次编译失败的项目进行编译。
将 ZEXPORT define 改回原来,再次进行编译
结果不变:
编译只需要头文件就够了
符号出错是由于链接的时候才会用
链接出错,两个原因:
第一个是 缺库
第二个是 没告诉它怎么去链,也就是路径
将第三方库 修改为英文路径后
重新 cmake 进行配置
第二次点击config后 如下 :
勾选
generate 后:
编译前目录文件:
vs 打开 sln文件
正在加载解决方案:
正在加载 254个项目
加载完后,左下角:正在初始化项目
无法解析外部符号, 网上资料解决方案之一:
无法解析的外部符号 _auxDIBImageLoadA@4 ,该符号在函数 "private: void __thiscall CLoad3DS::CreateTexture(unsigned int * const,char *,int)" (?CreateTexture@CLoad3DS@@AAEXQAIPADH@Z) 中被引用
解决办法:
在属性中的附加依赖项中粘贴几个库文件名OpenGL32.lib GLu32.lib GLaux.lib 确定后重新生成即可。
编译结束后的输出结果
最终还是没有完全编译成功!
发现一个官网的编译教程,先贴这里 : http://www.osgchina.org/index.php?option=com_content&view=article&id=111:usevscompile&catid=95&Itemid=484
- OSG + vusual studio 2013+win8 使用cmake 配置 问题
- Visual Studio 2013下配置Opencv3.2 和CMAKE问题
- OSG VS2010 win7/win8的配置
- android studio 使用CMAKE
- Android Studio使用cmake配置c++开发Admob
- Android Studio Cmake配置项
- android studio 使用cmake支持C++出现无法sync cmake error的问题
- OSG+VS2010在WIN7或WIN8下的配置
- Cmake 配置问题
- CMake 编译OSG 3.2.1 使用QT 5.4
- Android studio cMake 使用详解
- CMake构建Visual Studio中MFC项目的MFC配置问题
- visual studio 2012 下配置OPENcv3.1 和CMAKE问题总结
- android studio cmake 配置.a连接库
- android studio cmake配置opencv3.2.0
- Android Studio配置CMake开发NDK
- android studio cmake 配置.a连接库
- 使用cmake和visual studio编译freeglut和glew源代码并配置的流程
- 验证码的前世今生(今生篇)
- 高等数学题目
- Jenkins的启动命令
- 构建高并发高可用的电商平台架构实践
- 建造者模式
- OSG + vusual studio 2013+win8 使用cmake 配置 问题
- lua string.find
- Android 打开本地pdf文件
- [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher B HDU 1686
- 数据库优化之读写分离
- Unity Shader学习之相关知识搜集
- 一个平庸者的自述
- 基于平均背景建模的运动目标检测
- RabbitMQ之window环境启动