注册 登录
编程论坛 C++ Builder

用C++Builder开发BerkeleyDB问题,急!

PeterZhou79 发布于 2007-03-26 16:09, 1573 次点击

各位,下午好!
我从oracle网站上下了BerkeleyDB 4.5.20,用visual C++.net 编译通过,得到libdb45.dll和libdb45.lib文件,用C++Builder6.0编译通不过,用c++.net编译的lib用不了,我又用implib导出包,还是不行。源代码:
//---------------------------------------------------------------------------

#pragma hdrstop

#include "db_cxx.h"
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
Db db(NULL, 0);
db.close(0);
return 0;
}
//---------------------------------------------------------------------------
编译能通过,连接出问题。
[Linker Error] Unresolved external 'Db::~Db()' referenced from F:\OWNERDB\TEST\TESTDB.OBJ
[Linker Error] Unresolved external 'Db::Db(DbEnv *, unsigned int)' referenced from F:\OWNERDB\TEST\TESTDB.OBJ
[Linker Error] Unresolved external 'Db::close(unsigned int)' referenced from F:\OWNERDB\TEST\TESTDB.OBJ
现把libdb.dll及相关文件放在附件中,请各位帮忙看看。
谢谢!

只有本站会员才能查看附件,请 登录

1 回复
#2
PeterZhou792007-03-27 16:28
回复:(PeterZhou79)用C++Builder开发BerkeleyDB问题...

Lib文件是通过C++.net 2005编译出来的。微软的lib文件格式为coff, 而borland公司的格式为omf格式。
必须先软化,like this: coff2omf libdb45.lib libdb45_bcb.lib 方可用。

问题又来了: coff2omf don't convert object files library,
微软件从C++6.0开始,lib文件的coff格式文件又发生了变化了(fuck microsoft)。必须用
link /lib /convert libdb45.lib
把库文件转化成以前的coff格式。

现在谁能告诉我 link.exe 用哪一版本?.net 2005提供的link.exe已经没有convert这一项了,晕死。
救命!!!!

1