热情软件屋

 

PRO*C程序预编译通过,但是联编出现LNK2001问题


编号:QA004484
建立日期: 2001年11月18日 最后修改日期:2003年11月7日
所属类别:

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)
    不知问题出在那,请老师指教

回答:

    在函数前加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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio