查看: 7140|回复: 25

osgEarth编译出错,高手帮忙看看了。

[复制链接]

该用户从未签到

发表于 2012-7-25 22:29:15 | 显示全部楼层 |阅读模式
正在生成代码...
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzCloseCurrentFile,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzReadCurrentFile,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzOpenCurrentFilePassword,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzGoToNextFile,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzGetCurrentFileInfo,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzGoToFirstFile,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzLocateFile,该符号在函数 "public: bool __thiscall KMZArchive::readToBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?readToBuffer@KMZArchive@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@3@@Z) 中被引用
KMZArchive.obj : error LNK2019: 无法解析的外部符号 _unzOpen,该符号在函数 "public: __thiscall KMZArchive::KMZArchive(class osgEarth::URI const &)" (??0KMZArchive@@QAE@ABVURI@osgEarth@@@Z) 中被引用
D:\osgearth\osgearth\build\lib\Release\osgdb_kml.dll : fatal error LNK1120: 8 个无法解析的外部命令



编译出了以上错误,是2.2以上的,2.0的可以通过。高手帮忙看看了。
估计是minizip文件的问题,各位怎么设置的啊。不影响使用,基本都成功了,就两个没有通过,纠结啊。

该用户从未签到

发表于 2012-7-26 09:22:49 | 显示全部楼层
您使用的minizip依赖库可能存在一些问题,或者您没有设置这个依赖项?

该用户从未签到

 楼主| 发表于 2012-7-26 20:07:21 | 显示全部楼层
array 发表于 2012-7-26 09:22
您使用的minizip依赖库可能存在一些问题,或者您没有设置这个依赖项?

编译几次都这样,用提供的include和lib提示缺少zlib.h文件。这开源的东西太难编译了。
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2012-8-11 12:03:59 | 显示全部楼层
    你CMake时指定的路径对不对?
    还有就是可以搜到windows下已编译好的minizip和libzip,要同时带lib和include那种的

    该用户从未签到

     楼主| 发表于 2012-8-11 22:17:51 | 显示全部楼层
    csdn 发表于 2012-8-11 12:03
    你CMake时指定的路径对不对?
    还有就是可以搜到windows下已编译好的minizip和libzip,要同时带lib和includ ...

    对的啊。安装他们编译好的。2.4没有libzip设置的地方。
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2012-8-13 23:00:50 | 显示全部楼层
    like5635 发表于 2012-8-11 22:17
    对的啊。安装他们编译好的。2.4没有libzip设置的地方。

    osgearth2.1编译是有libzip的,我的CMake是2.8

    该用户从未签到

     楼主| 发表于 2012-8-15 11:34:01 | 显示全部楼层
    csdn 发表于 2012-8-13 23:00
    osgearth2.1编译是有libzip的,我的CMake是2.8

    跟cmake没关系吧。估计是minizip版本有问题。osgearth编译好难啊,学起来看着也不容易。

    该用户从未签到

     楼主| 发表于 2012-8-15 11:35:20 | 显示全部楼层
    csdn 发表于 2012-8-13 23:00
    osgearth2.1编译是有libzip的,我的CMake是2.8

    有两个编译不通过也能用吧。我的KML编译不通过,不操作KML,就可以用其他的吧。不知道我理解的对不对,请指教。
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2012-8-15 19:39:30 | 显示全部楼层
    一般来说用不到的库,编译有问题也没关系的,只要得到你想使用的库就可以了,开源的东西编译确实折腾人,但很有成就感

    该用户从未签到

    发表于 2012-8-27 21:32:21 | 显示全部楼层
    我现在也遇到同样的问题,之前是提示找不到zlib.h文件,后来就这这个……
    不知道是不是minizip版本不对?我用的osgEarth2.2  minizip是1.2.5的那个。
    还在纠结中……

    该用户从未签到

    发表于 2012-8-27 22:27:19 | 显示全部楼层
    上传了我用的minizip.lib 和minizipD.lib,kml插件可以编译通过

    minizipD.lib

    470.13 KB, 下载次数: 234, 下载积分: 威望 1

    minizip.lib

    495.35 KB, 下载次数: 229, 下载积分: 威望 1

    该用户从未签到

    发表于 2012-9-2 23:56:09 | 显示全部楼层
    hrbspider 发表于 2012-8-27 22:27
    上传了我用的minizip.lib 和minizipD.lib,kml插件可以编译通过

    to hrbspider:谢谢啊,用你的minizip,编译没有问题了

    该用户从未签到

    发表于 2012-10-6 10:31:44 | 显示全部楼层
    faith 发表于 2012-9-2 23:56
    to hrbspider:谢谢啊,用你的minizip,编译没有问题了

    您好,我跟您出现了同样的错误,估计也是minzip库的问题,但是我下载下来的lib和dll的名字不是minizip啊,有zlibwapi.lib/dll和zlibstat.lib/dll,对应的头文件需要改吗?这个minizp和minizipd您是怎么用的?只需要把cmake的路径修改一下吗?

    该用户从未签到

    发表于 2012-10-6 11:53:49 | 显示全部楼层
    qiulinyao 发表于 2012-10-6 10:31
    您好,我跟您出现了同样的错误,估计也是minzip库的问题,但是我下载下来的lib和dll的名字不是minizip啊, ...

    我后面用的三方库里的那个minizip也可以,直接在cmake里配置好就行

    该用户从未签到

    发表于 2012-10-6 12:03:47 | 显示全部楼层
    faith 发表于 2012-10-6 11:53
    我后面用的三方库里的那个minizip也可以,直接在cmake里配置好就行

    谢谢,编译成功了,果然是minzip库的问题,感谢这个帖子里的每个人!

    该用户从未签到

    发表于 2013-3-8 17:13:40 | 显示全部楼层
    我也是这个问题!弄了好久!终于看到希望了!

    该用户从未签到

    发表于 2013-3-26 22:28:11 | 显示全部楼层
    hrbspider 发表于 2012-8-27 22:27
    上传了我用的minizip.lib 和minizipD.lib,kml插件可以编译通过

    多谢

    该用户从未签到

    发表于 2013-4-10 01:38:34 | 显示全部楼层
    包含目录要变吗? 直接在Cmake中改完配置并且生成下就行了吗 ?你后边用的那个三方库在哪?

    该用户从未签到

    发表于 2013-6-7 15:35:14 | 显示全部楼层
    faith 发表于 2012-8-27 21:32
    我现在也遇到同样的问题,之前是提示找不到zlib.h文件,后来就这这个……
    不知道是不是minizip版本不对?我 ...

    你好。我和你遇到的问题一样,zlib.h我明明加到所在路径的文件夹下了啊,可是为什么还是提示无法打开zlib.h啊?然后生成后在生成一次有提示这个KML的错误,那个minizip.lib和minizipd.lib文件应该放在哪个文件夹下啊?minizip的lib文件夹吗?

    该用户从未签到

    发表于 2013-6-7 15:35:57 | 显示全部楼层
    faith 发表于 2012-8-27 21:32
    我现在也遇到同样的问题,之前是提示找不到zlib.h文件,后来就这这个……
    不知道是不是minizip版本不对?我 ...

    你好。我和你遇到的问题一样,zlib.h我明明加到所在路径的文件夹下了啊,可是为什么还是提示无法打开zlib.h啊?然后生成后在生成一次有提示这个KML的错误,那个minizip.lib和minizipd.lib文件应该放在哪个文件夹下啊?minizip的lib文件夹吗?

    该用户从未签到

    发表于 2013-6-7 20:58:38 | 显示全部楼层
    kevinfox18 发表于 2013-6-7 15:35
    你好。我和你遇到的问题一样,zlib.h我明明加到所在路径的文件夹下了啊,可是为什么还是提示无法打开zlib ...

    不管放哪都无所谓,只要在cmake配置的时候指向该地址就行。一般情况下把它放在3rdparty中

    该用户从未签到

    发表于 2013-6-10 10:05:24 | 显示全部楼层
    zlib的头文件需要单独下载,3rdParty里带的头文件不配套。详见我在教程区发的编译教程

    该用户从未签到

    发表于 2013-6-12 15:43:10 | 显示全部楼层
    faith 发表于 2013-6-7 20:58
    不管放哪都无所谓,只要在cmake配置的时候指向该地址就行。一般情况下把它放在3rdparty中

    我现在可以打开ziib.h文件了,可是打不开unzip.h文件了,还有就是出现
    “错误        1        error C2039: “_minExpiryTime”: 不是“osg:agedLOD::PerRangeData”的成员        D:\osgEarth\osgEarth-2.8.2\src\osgEarthDrivers\engine_mp\TilePagedLOD.cpp        117        1        Plugin osgearth_engine_mp”
    这个错误,这是怎么回事?您知道吗?谢谢了

    该用户从未签到

    发表于 2013-8-23 00:16:38 | 显示全部楼层
    我也遇到这个问题了。而且在cmake时候,竟然没有看到libzip这一项。不知道是什么问题。

    该用户从未签到

    发表于 2013-12-5 23:29:25 | 显示全部楼层
    蛋疼啊。 这个问题。在plugin kml预定义项中加入 ZLIB_WINAPI 就可以编过了。顺便说一下,这个库zlibwapi.lib包含了zlib的所有导出函数,所以,它可以完全替代zlib库使用,工程中就只要这个就可以了。

    该用户从未签到

    发表于 2016-6-29 10:43:01 | 显示全部楼层
    我也遇到同样的问题,希望能通过这里的方法解决!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表