Created On:  10 February 2012

Problem:

When using COBSQL to compile code against Oracle 11g as the database the following directives are set in the project:

p(cobsql) CSQLT=ORACLE8 CST CSP DIS MAKESYN VERBOSE KEEPCBL END-C p(cp) CONFIRM ENDP ENDP

When the code is compiled, the Pro*COBOL precompiler is invoked and the programs compile without error:

Pro*COBOL: Release 11.2.0.1.0 - Production on Thu Feb 9 15:32:35 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


The compilation is sucessful and and .obj is produced.

But when the linker is invoked to create an executable the following errors are displayed:

 : error LNK2001: unresolved external symbol _csqlsupp
 : error LNK2001: unresolved external symbol _ora8lib
 : error LNK2001: unresolved external symbol _ora8prot

The import libraries orasql11.lib and csqlsupp.lib do exist in the link command.

Why is this error occuring?

Resolution:

The cause of the problem is that you are specifying the $SET CASE directive in your program which is causing the external names to be generated as lowercase when they need to be generated as uppercase. Please check to see if you are setting this directive on and then remove it.