用C++Builder开发BerkeleyDB问题,急!
<P>各位,下午好!<BR>我从oracle网站上下了BerkeleyDB 4.5.20,用visual C++.net 编译通过,得到libdb45.dll和libdb45.lib文件,用C++Builder6.0编译通不过,用c++.net编译的lib用不了,我又用implib导出包,还是不行。源代码:<BR>//---------------------------------------------------------------------------</P><P>#pragma hdrstop</P>
<P>#include "db_cxx.h"<BR>//---------------------------------------------------------------------------</P>
<P>#pragma argsused<BR>int main(int argc, char* argv[])<BR>{<BR> Db db(NULL, 0);<BR> db.close(0);<BR> return 0;<BR>}<BR>//---------------------------------------------------------------------------<BR>编译能通过,连接出问题。<BR>[Linker Error] Unresolved external 'Db::~Db()' referenced from F:\OWNERDB\TEST\TESTDB.OBJ<BR>[Linker Error] Unresolved external 'Db::Db(DbEnv *, unsigned int)' referenced from F:\OWNERDB\TEST\TESTDB.OBJ<BR>[Linker Error] Unresolved external 'Db::close(unsigned int)' referenced from F:\OWNERDB\TEST\TESTDB.OBJ<BR>现把libdb.dll及相关文件放在附件中,请各位帮忙看看。<BR>谢谢!</P>[attach]18277[/attach]<BR>
回复:(PeterZhou79)用C++Builder开发BerkeleyDB问题...
<P>Lib文件是通过C++.net 2005编译出来的。微软的lib文件格式为coff, 而borland公司的格式为omf格式。<BR>必须先软化,like this: coff2omf libdb45.lib libdb45_bcb.lib 方可用。<BR> <BR>问题又来了: coff2omf don't convert object files library,<BR> 微软件从C++6.0开始,lib文件的coff格式文件又发生了变化了(fuck microsoft)。必须用<BR> link /lib /convert libdb45.lib <BR> 把库文件转化成以前的coff格式。<BR><BR> 现在谁能告诉我 link.exe 用哪一版本?.net 2005提供的link.exe已经没有convert这一项了,晕死。<BR> 救命!!!!</P>页:
[1]
