IBM Support

IEW2456E symbol unresolved when compiling C++ program that calls assembler module

Troubleshooting


Problem

You are receiving message IEW2456E symbol unresolved. Member could not be included from the designated call library. This occurs when attempting to compile and linkedit a CICS C++ program that calls an assembler module.

Cause

A linkage specifier that enables the compiler to generate and accept parameter lists is missing.

Resolving The Problem

Add a linkage specifier to your program. Specifying Linkage for C or C++ and Assembler of the z/OS XL C/C++ Programming Guide documents the following:

Under C++, a linkage specifier enables the compiler to generate and accept parameter lists, using a linkage convention known as OS linkage. Although functionally different, both calling an assembler routine and being called by one are handled by the same linkage specifier. The format of the linkage specifier is shown below, where fnx desc is the name of the OS entry point:


extern "OS" {
 
fn1 desc;
 
fn2 desc;


Example: extern "OS" long MODULENAME(void *, ...);

Related Information

[{"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Application Development","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"5.1;4.2;4.1;3.2;3.1","Edition":"","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Product Synonym

CICS/TS CICS TS CICS Transaction Server

Document Information

Modified date:
05 January 2026

UID

swg21175406