PRO*C程序预编译通过,但是联编出现LNK2001问题
编号:QA004484
建立日期: 2001年11月18日 最后修改日期:2003年11月7日
所属类别:
Q
zhqi:
操作系统:WINDOWS NT
编程工具:PRO*C
问题:我现在使用的是oracle8.1.6版本,WINDOWS NT系统。想用PRO*C连接ORACLE数据库。PRO*C程序预编译通过,但是联编出现问题。
在VC中编译出错,如下:
Linking...
proj1Dlg.obj : error LNK2001: unresolved external symbol "void __cdecl sqlcxt(void * *,unsigned long *,struct sqlexd *,struct sqlcxp const *)" (?sqlcxt@@YAXPAPAXPAKPAUsqlexd@@PBUsqlcxp@@@Z)
Debug/proj1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
proj1.exe - 2 error(s), 0 warning(s)
不知问题出在那,请老师指教
A回答:
在函数前加extern "C"。c和c++形成函数名规则不一样。
superlcj的意见:
在vc的project下的 settings中link选项的object/library modules 加入oraSQL8.lib.然后在装oracle的目录中找到oraSQL8.lib拷到你程序目录中就可以了!(主持人注:可以不将oraSQL8.lib拷到你程序目录,而是在VC++中选择Tools|Options,在对话框选择Directories,再从下拉框中选择Library Files,添加oraSQL8.lib所在路径。)
lyf的意见:
连接的时候将orasql8.lib手工加入连接串里。
chinaLinCT的意见:
写个.h文件,将你要引用的函数包入,在.pc文件中也包入.h文件
此问题由zzg回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 数据库, database, query。
| |
|
|
| |
|
|