STL链接问题,编译信息如下,请各位兄弟帮忙~~

zijida 2006-06-05 05:59:02
--------------------Configuration: psifilter - Win32 Debug--------------------
Compiling...
program.cpp
Skipping... (no relevant changes detected)
psifilter.cpp
Linking...
Creating library intermedia\debug/psifilter.lib and object intermedia\debug/psifilter.exp
program.obj : error LNK2001: unresolved external symbol "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ)
program.obj : error LNK2001: unresolved external symbol "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
bin/psifilter.ax : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...

psifilter.ax - 3 error(s), 0 warning(s)


说明:
#include <vector>
using namespace std;
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zijida 2006-06-06
  • 打赏
  • 举报
回复
搞定结贴! :)
谢谢两位的大力帮助~

Strmbasd.lib Msvcrtd.lib Winmm.lib User32.lib Advapi32.lib ole32.lib Kernel32.lib oleaut32.lib uuid.lib msvcprt.lib /nologo /dll /incremental:yes /pdb:"intermedia\debug/psifilter.pdb" /debug /machine:I386 /nodefaultlib /def:".\psifilter.def" /out:"bin/psifilter.ax" /implib:"intermedia\debug/psifilter.lib" /pdbtype:sept
zijida 2006-06-06
  • 打赏
  • 举报
回复
VC6.0 编译器,据说对STL支持不是很好.但目前也只能在它上面搞.郁闷.
目标文件是DLL.

编译环境如下:
/nologo /Gz /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /FR"intermedia\debug/" /Fp"intermedia\debug/psifilter.pch" /YX"streams.h" /Fo"intermedia\debug/" /Fd"intermedia\debug/" /FD /GZ /EHsc /c

链接环境如下:
Strmbasd.lib Msvcrtd.lib Winmm.lib User32.lib Advapi32.lib Kernel32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /incremental:yes /pdb:"intermedia\debug/psifilter.pdb" /debug /machine:I386 /nodefaultlib /def:".\psifilter.def" /out:"bin/psifilter.dll" /implib:"intermedia\debug/psifilter.lib" /pdbtype:sept
boxban 2006-06-06
  • 打赏
  • 举报
回复
楼主的代码在Vc.net 2003下编译没有任何错误

不知lz用的什么编译器,或许是开发环境被破坏了
zijida 2006-06-06
  • 打赏
  • 举报
回复
class Programs
{
private:
vector<Program*> m_proglist;

public:
Programs(){};
int AddNewProgram(Program* prog_obj){return 0;}
int FindProgram(Program* prog_obj){ return -1; }
int FindProgram(int prog_id){ return -1; }
int size() { return m_proglist.size(); }

Program* GetAt(int pos)
{
if( (pos<0) ||(pos >= m_proglist.size()) ) return NULL;
return m_proglist.at(pos);
//return *(m_proglist.begin()+pos);
}
};

各位看官上眼啦~ 就是最后一句,如果用屏蔽的那句,就一切OK,调用at(),就是上述的错误一堆.点解呢?
sharpdew 2006-06-05
  • 打赏
  • 举报
回复
贴点代码来看看,你这样说有点让人捕风捉影
zijida 2006-06-05
  • 打赏
  • 举报
回复
在vector变量使用 at(int)过程时,出现上述链接错误.
at()过程中有调用_Xran()来抛出异常,而vector中有_Xran()定义.

以上错误,点解?

64,654

社区成员

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

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