OSG新手使用过程中可能遇到的坑
2017-03-24 14:39
190 查看
(说明:其实这篇博文内容跟OSG关系不大,更确切的说是在使用Visual Studio的过程中可能遇到的坑。由于OSG编译的过程中会依赖很多第三方库,还有Debug和Release版本,确实很容易动态链接异常,这是本人在编译OSG程序的过程中遇到的真实问题,故还是放在OSG类别中了,希望对新手有用,高手绕行!)
1.编译“error LNK2005”错误:
error LNK2005: "public: __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char> >(void)" (??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ)
已经在 Zip_Application.obj 中定义(osg55-osgDBd.dll)
解决办法:在属性->链接器->命令行,最下面的“其他选项”框中加入命令"/FORCE:MULTIPLE " ,即将Visual Studio2010的STL从import变成static.
2. 编译“error LNK2019”错误:
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 "public: void __thiscall Model::loading(void)" (?loading@Model@@QAEXXZ) 中被引用
解决方法:这个错误是由于我们当前的编译环境是VS2010,但是动态链接的有些库不是VS2010编译造成的,重新在VS2010编译就OK了。
3.运行编译好的OSG应用程序时可能碰到这种情况:应用程序无法正常启动(0xc0150002)。请单击“确定”关闭应用程序。
解决方法:我们可利用Dependency Walker这个软件来查看到底哪些动态链接库不匹配,如下就是我的程序是VS2010编译的,但是动态链接的有些库是VS2005编译的,重新在VS2010编译就OK了。
1.编译“error LNK2005”错误:
error LNK2005: "public: __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char> >(void)" (??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ)
已经在 Zip_Application.obj 中定义(osg55-osgDBd.dll)
解决办法:在属性->链接器->命令行,最下面的“其他选项”框中加入命令"/FORCE:MULTIPLE " ,即将Visual Studio2010的STL从import变成static.
2. 编译“error LNK2019”错误:
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ),该符号在函数 "public: void __thiscall Model::loading(void)" (?loading@Model@@QAEXXZ) 中被引用
解决方法:这个错误是由于我们当前的编译环境是VS2010,但是动态链接的有些库不是VS2010编译造成的,重新在VS2010编译就OK了。
3.运行编译好的OSG应用程序时可能碰到这种情况:应用程序无法正常启动(0xc0150002)。请单击“确定”关闭应用程序。
解决方法:我们可利用Dependency Walker这个软件来查看到底哪些动态链接库不匹配,如下就是我的程序是VS2010编译的,但是动态链接的有些库是VS2005编译的,重新在VS2010编译就OK了。
相关文章推荐
- Androguard的androdd.py模块在使用过程中可能遇到的问题
- FileZilla 使用过程中可能遇到问题 及 解决办法
- git 使用过程中可能遇到的问题(遇到更新)
- TensorFlow 初学者在使用过程中可能遇到的问题及解决办法(转)
- (原)使用 memcache 使用过程中可能遇到的问题
- ubuntu 使用过程中可能遇到的问题,和所需要用到的情况设置
- IG NZT 安装使用过程中可能遇到的问题解决办法
- [转]TensorFlow 在使用过程中可能遇到的问题及解决办法
- CentOS 6.5使用过程中遇到的问题(更新中)
- Hibernate使用过程中遇到的问题
- Android开发时 adb shel l的使用可能遇到的问题
- ASIHTTPRequest使用过程中遇到的问题及解决办法
- Android Studio使用过程中遇到的问题
- 项目实现过程中遇到的问题记录(一)------------使用AsyncTask时,doInBackground没有立即执行
- 关于SpringBoot2.0版本使用过程中遇到问题
- java中使用POI导入excel数据的过程中,遇到读取以科学计数法显示的数据
- Android开发新手可能遇到的问题(续)
- 使用Espresso过程中遇到的问题
- 基于WINAVR + avr studio 4 使用外部晶振时及延时可能遇到的问题( By-炬本)
- 使用jUnit对代码进行测试以及测试过程中遇到的问题