PeterZhou79 发表于 2007-3-26 16:09

用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 发表于 2007-3-27 16:28

回复:(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]

编程论坛