fstream的无法解析外部符号

zhangjikai8 2015-08-27 11:56:39
我最近在用Firebreath写一个浏览器插件,功能中需要读取一个本地的二进制文件,所以就用到fstream库中的seek和read函数来读取,以前写普通程序的时候这两个函数从来没出过问题,可是在里边却提示”无法解析的外部符号“,但是同样这个类中的open函数和“>>”"<<"操作符都没问题,不知道是怎么回事,有人遇到过这个问题吗,谢谢!


1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(__int64,int)" (__imp_?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z)
1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::read(char *,__int64)" (__imp_?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z)
...全文
217 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
二班的码农 2015-08-27
  • 打赏
  • 举报
回复
引用 楼主 zhangjikai8 的回复:
我最近在用Firebreath写一个浏览器插件,功能中需要读取一个本地的二进制文件,所以就用到fstream库中的seek和read函数来读取,以前写普通程序的时候这两个函数从来没出过问题,可是在里边却提示”无法解析的外部符号“,但是同样这个类中的open函数和“>>”"<<"操作符都没问题,不知道是怎么回事,有人遇到过这个问题吗,谢谢!
1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(__int64,int)" (__imp_?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z)
1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::read(char *,__int64)" (__imp_?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z)
贴一下你的include头文件处
赵4老师 2015-08-27
  • 打赏
  • 举报
回复
将错误信息中出现的标识符放在百度里面搜一下,看其在哪个.lib中,然后在本地硬盘上搜索该.lib,如果没有,在网上搜索相关库或模块下载安装,然后将其所在目录填写到“附加依赖库所在目录”中,将其名字添加到“附加依赖库”中,重新连接。 VC6: 工程、设置、C/C++、分类:Preprocessor、附加包含路径:填写附加头文件所在目录 逗号间隔多项 工程、设置、Link、分类:Input、附加库路径:填写附加依赖库所在目录 分号间隔多项 工程、设置、Link、分类:Input、对象/库模块:填写附加依赖库的名字.lib 空格间隔多项 VS20xx: 项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项 项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
mujiok2003 2015-08-27
  • 打赏
  • 举报
回复
__declspec(dllimport) 你用了dll?
mujiok2003 2015-08-27
  • 打赏
  • 举报
回复
引用 9 楼 zhangjikai8 的回复:
[quote=引用 8 楼 mujiok2003 的回复:] [quote=引用 7 楼 zhangjikai8 的回复:] [quote=引用 1 楼 mujiok2003 的回复:] __declspec(dllimport) 你用了dll?
没有直接调用DLL,调用的是一些lib,但是没有调关于fstream的lib,难道是其他库里的东西跟这个冲突了?[/quote] FileReader.cpp中使用read/seek的地方怎么会加了dllimport[/quote] 没有啊,这是错误信息里边的,一般函数没定义或者没引用相应的库文件不就是会提示这些错误吗?[/quote] 错误信息说明你的代码中是加了dllimport的, 你需要自己分析怎么加上的。
zhangjikai8 2015-08-27
  • 打赏
  • 举报
回复
引用 8 楼 mujiok2003 的回复:
[quote=引用 7 楼 zhangjikai8 的回复:] [quote=引用 1 楼 mujiok2003 的回复:] __declspec(dllimport) 你用了dll?
没有直接调用DLL,调用的是一些lib,但是没有调关于fstream的lib,难道是其他库里的东西跟这个冲突了?[/quote] FileReader.cpp中使用read/seek的地方怎么会加了dllimport[/quote] 没有啊,这是错误信息里边的,一般函数没定义或者没引用相应的库文件不就是会提示这些错误吗?
mujiok2003 2015-08-27
  • 打赏
  • 举报
回复
引用 7 楼 zhangjikai8 的回复:
[quote=引用 1 楼 mujiok2003 的回复:] __declspec(dllimport) 你用了dll?
没有直接调用DLL,调用的是一些lib,但是没有调关于fstream的lib,难道是其他库里的东西跟这个冲突了?[/quote] FileReader.cpp中使用read/seek的地方怎么会加了dllimport
zhangjikai8 2015-08-27
  • 打赏
  • 举报
回复
引用 1 楼 mujiok2003 的回复:
__declspec(dllimport) 你用了dll?
没有直接调用DLL,调用的是一些lib,但是没有调关于fstream的lib,难道是其他库里的东西跟这个冲突了?
二班的码农 2015-08-27
  • 打赏
  • 举报
回复
cpp中包含的也贴下
zhangjikai8 2015-08-27
  • 打赏
  • 举报
回复
引用 3 楼 ant2012 的回复:
[quote=引用 楼主 zhangjikai8 的回复:] 我最近在用Firebreath写一个浏览器插件,功能中需要读取一个本地的二进制文件,所以就用到fstream库中的seek和read函数来读取,以前写普通程序的时候这两个函数从来没出过问题,可是在里边却提示”无法解析的外部符号“,但是同样这个类中的open函数和“>>”"<<"操作符都没问题,不知道是怎么回事,有人遇到过这个问题吗,谢谢!
1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(__int64,int)" (__imp_?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z)
1>FileReader.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::read(char *,__int64)" (__imp_?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z)
贴一下你的include头文件处[/quote] 头文件都是一些OSG的东西 #include <io.h> #include <osg/Texture2D> #include <osgDB/ReadFile> #include <osgDB/WriteFile> #include <osg/Texture3D> 这个文件单独使用的时候没什么问题,放到Firebreath工程里才有的问题
燕赵飞歌 2015-08-27
  • 打赏
  • 举报
回复
最好贴一下你的头文件,难道包含顺序引起的??

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧