包含arxHeader.h的工程中调用了标准fstream,sstream,iosteam等引发链接问题的解决方案

问题的提出:

创新互联建站是一家从事企业网站建设、网站建设、成都网站建设、行业门户网站建设、网页设计制作的专业网站建设公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点上千余家。

        最近在施行多平台编译,原来没有的问题,由于维护多平台而涌现了出来,在其中的一个工程中,用到了fsteam等类库,当初在vs2002中,没有加arxHeader.h编译没问题,由于要向多平台转换,因此加入了arxHeader.h,因为arxHeader.h中把相应的类库引用了进来,而不需要在工程中设置,因此就出现了下面的链接错误:

 

问题的描述:    

error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)"

 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char> >(void)"

 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)"

 

问题的根源:

        由于知道是加入了arxHeader.h引发的错误,但是为什么会出现这样的错误呢,经过耐心的寻找(二分查错法),最近锁定在了dbColor.h中的内容:

//prevent the MS header "use_ansi.h" from outputing
//its linker directives, we expect clients to specify
//what flavor (debug/release) of the C++ runtime they want to
//link against.
#pragma push_macro("_USE_ANSI_CPP")
#define _USE_ANSI_CPP

#include <vector>

#pragma pop_macro("_USE_ANSI_CPP")


      原来是AutoDesk公司为了防止链接错误,而让用户自己指定相应的类库

问题的解决:

      知道原因就很容易解决问题了,由于本工程是多线程DLL的DEBUG版,故在链接库中添加msvcprtd.lib,编译通过!

网站题目:包含arxHeader.h的工程中调用了标准fstream,sstream,iosteam等引发链接问题的解决方案
链接分享:https://www.cdcxhl.com/article38/igpopp.html

成都网站建设公司_创新互联,为您提供微信公众号云服务器网站收录App开发网站内链搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营