what kind of cc-error? please help

May 17, 2011 at 05:44:58
Specs: SOLARIS
hi, I compiled a old application today. here is make file output:
I do not know what is the meaning of "[Hint: try checking whether the first non-inlined, non-pure virtual function of class BASE_clSsMsg is defined]". If anybody knows about it, please tell me where is wrong. Thank you.
BASE_clDGMSocket::BASE_clDGMSocket(short,BASE_clMessageMgr*) DEV_Main.o
void BASE_clLog::vSetNewLogOn(const char*) DEV_Main.o
void BASE_clMciMsg::vReadBodyFromStream() DEV_clMbiHandler.o
void BASE_clSsMsg::vCalcCheckSum(char*,char*,int) DEV_clMbiHandler.o
BASE_enumIfType BASE_clHelper::eChkIfType(char*) DEV_Main.o
BASE_enumRetCode BASE_clInterfaceMgr::eProcess(BASE_clMessage*,BASE_clMessage**,
int&) DEV_clBoxHandler.o
void BASE_clBcCommStats::vSetMsg(BASE_clMessage*) DEV_clBoxHandler.o
BASE_enumRetCode BASE_clSocket::eReceive(char*,int) DEV_clMbiHandler.o
MyTrace DEV_Main.o
BASE_clSsMsg::__vtbl DEV_clMbiHandler.o
[[Hint: try checking whether the first non-inlined, non-pure virtual function of
class BASE_clSsMsg is defined]
]

BASE_enumRetCode BASE_clDGMSocket::eSend(const BASE_clMessage&,int,int) DEV_clBo
xHandler.o
BASE_clSocketList::BASE_clSocketList() DEV_Main.o
BASE_clInterfaceMgr::BASE_clInterfaceMgr(BASE_clIfExeParm&) DEV_Main.o
BASE_clMutex::BASE_clMutex() DEV_Main.o
BASE_clLuIdList::BASE_clLuIdList(char*) DEV_Main.o
BASE_clMessage::~BASE_clMessage() DEV_clComAndCtrl.o
BASE_clConnInfoTable::BASE_clConnInfoTable() DEV_Main.o
goHelper DEV_Main.o
void BASE_clSocketList::vShutdown(int) DEV_clBoxHandler.o
void BASE_clLog::vTraceWithArg(const char*,const char*) DEV_clMbiHandler.o
BASE_clInterfaceMgr::~BASE_clInterfaceMgr() DEV_Main.o
ld: fatal: Symbol referencing errors. No output written to /export/home/jinl/dev
/bin/dev_server
*** Error code 1
make: Fatal error: Command failed for target `/export/home/jinl/dev/bin/dev_serv
er'
/*************BASE_clSsMsg.cpp file *******************/
/*-------------------------------------------------------------------------
*
* Copyright (C) Rogers Engineering 2001
*
*-------------------------------------------------------------------------
*
* $Workfile$
*
* $Revision$
* $Date$
*
* $Author$
*
* $Logfile$
*
*-------------------------------------------------------------------------
*
* Original File: BASE_clSsMsg.cpp
*
* Originator: Tony Wong
*
* Description: This file contains the implementation for class BASE_clSsMsg.
* This class is used for an message that has an undefined type.
* .
*
*-------------------------------------------------------------------------
*/

//
/*-------------------------------------------------------------------------
*
* $Log$
*
*-------------------------------------------------------------------------
*/


#include "BASE_clSsMsg.h"
#include "BASE_clLog.h"

/* Important:
1. the SS command size always counts the null terminator
2. the command is assumed to be a null terminated string
3. command from SS does not have ETX, it has STX only.
4. an ETX has to be added before passing to box controller.
5. The STX and ETX are set to 2 and 13 when sending to box controller
6. The STX and ETX are defaulted to 42 and 13 when sending to SS
*/

BASE_clSsMsg::BASE_clSsMsg(uchar_t *pbyStream, int iStreamLength)
: BASE_clMessage(pbyStream, iStreamLength),
m_iSsSeqNum(0)
{
BASE_clMessage::vCreateMessage();

if (m_nDataSize >= (SS_MIN_COMMAND_SIZE + 4))
{
sscanf(m_szCommand + 5, "%4X", &m_iSsSeqNum);
}
else
{
m_iSsSeqNum = 0;
}

m_iMbiKey = 0;
}


void BASE_clSsMsg::vReadBodyFromStream()
{
m_oStream.roFrStream(m_szCommand, m_nDataSize);
}

void BASE_clSsMsg::vWriteBodyToStream()
{
m_oStream.roToStream(m_szCommand, m_nDataSize);
}

void BASE_clSsMsg::vPrintBody()
{
BASE_TRACE_ARG0("Command : ");
BASE_TRACE_IN_CHAR((const uchar_t*) m_szCommand, m_nDataSize)
}

BASE_enumRetCode BASE_clSsMsg::eSetCommand(char* pszCommand)
{
char* pszMethod = "BASE_clSsMsg::eSetCommand";
short nSize = (short) strlen(pszCommand) + 1;

if (nSize < SS_MIN_COMMAND_SIZE)
{
BASE_LOG_ERROR(pszMethod, "Invalid command");
}
else if (nSize > SS_COMMAND_SIZE)
{
char buff[100];
sprintf(buff, "Command size %d is too big", nSize);
BASE_LOG_ERROR(pszMethod, buff);
}
else
{
m_nDataSize = nSize;
strcpy(m_szCommand, pszCommand);
sscanf(m_szCommand + 5, "%4X", &m_iSsSeqNum);
return BASE_eSUCCESS;
}

BASE_LOG_ERROR(pszMethod, pszCommand);
return BASE_eFAIL;
}


BASE_enumRetCode BASE_clSsMsg::eMakeCommand(char* pszCommand,
BASE_enumIfType eIfType)
{
char* pszMethod = "BASE_clSsMsg::eMakeCommand";
short nSize = (short) strlen(pszCommand) + 2;

if (nSize < SS_MIN_COMMAND_SIZE)
{
BASE_LOG_ERROR(pszMethod, "Invalid command");
}
else if (nSize > SS_COMMAND_SIZE)
{
char buff[100];
sprintf(buff, "Command size %d is too big", nSize);
BASE_LOG_ERROR(pszMethod, buff);
}
else
{
m_nDataSize = nSize;

if (eIfType == BASE_eGIA)
{
m_szCommand[0] = SS_STX_GIA;
}
else if (eIfType == BASE_eSUPERSYSTEM)
{
m_szCommand[0] = SS_STX_SS;
}
else if (eIfType == BASE_eEAS)
{
m_szCommand[0] = pszCommand[0];
}
else
{
m_szCommand[0] = SS_STX_GID;
}

strcpy(m_szCommand + 1, pszCommand + 1);
m_szCommand[nSize - 2] = SS_ETX;
m_szCommand[nSize - 1] = 0;
sscanf(m_szCommand + 5, "%4X", &m_iSsSeqNum);
return BASE_eSUCCESS;
}

BASE_LOG_ERROR(pszMethod, m_szCommand);
return BASE_eFAIL;
}


BASE_enumRetCode BASE_clSsMsg::eConvertCommand(char* pszCommand,
BASE_enumIfType eIfType)
{
char* pszMethod = "BASE_clSsMsg::eConvertCommand";

if (pszCommand == NULL)
{
return BASE_eIGNORE;
}

if (strlen(pszCommand) < 8)
{
return BASE_eIGNORE;
}

sscanf(pszCommand, "%8X", &m_iMbiKey);
strcpy(pszCommand, pszCommand + 8);

if (strncmp(pszCommand, SS_INVALID_1, strlen(SS_INVALID_1)) == 0)
{
return BASE_eIGNORE;
}
else if (strncmp(pszCommand, SS_INVALID_2, strlen(SS_INVALID_2)) == 0)
{
return BASE_eIGNORE;
}
else if (strlen(pszCommand) < SS_MIN_COMMAND_SIZE)
{
return BASE_eIGNORE;
}
else if (strtok(pszCommand, "~") == NULL)
{ // End the string at first occurrance
return BASE_eIGNORE;
}

return eMakeCommand(pszCommand, eIfType);
}


void BASE_clSsMsg::vCalcCheckSum(char *pszCheckSum,
char *pcStream, int iCheckSize)
{
int i;
unsigned long sum = 0, num = 0;
unsigned result;

for(i = 0; i < iCheckSize/2; i++)
{
sscanf(pcStream, "%2X", &num);
sum += num;
sum %= 256;
pcStream += 2;
}

result = (unsigned)sum;
result = (((~result) + 1) & 0xFF);
sprintf(pszCheckSum, "%2.2X", result);
}


void BASE_clSsMsg::vGenReplyMsg( BASE_clMessage** ppoReply, char* pszReply,
BASE_enumIfType eIfType, long lReplyCode)
{
const char* routine = "BASE_clSsMsg::vGenReplyMsg";
char buff[BASE_SS_COMMAND_SIZE];
char buff1[BASE_SS_COMMAND_SIZE + 40];

if (eIfType != BASE_eEAS)
{
pszReply[0] = SS_STX_SS;
}

if (m_iMbiKey > 0)
{
sprintf(buff, "%08X%s", m_iMbiKey, pszReply);
}
else
{
strcpy(buff, pszReply);
}

int len = strlen(buff) - 1;
buff[len] = 0;
BASE_clSsReplyMsg* poReply = new BASE_clSsReplyMsg();
poReply->vSetTargetId(iGetSourceId());
poReply->vSetSourceId(iGetTargetId());
poReply->vSetSerial(lGetSerial());
poReply->vSetCommand(buff);
poReply->vSetState(lReplyCode);
poReply->vSetDataSize();
poReply->vCreateStream();
*ppoReply = poReply;
sprintf(buff1, "Reply (%d): <%s>", len, buff);
BASE_LOG_MESSAGE(routine, buff1);
}


void BASE_clSsMsg::vGenTimeoutMsg(BASE_clMessage** ppoReply,
BASE_enumIfType eIfType)
{
char szCheckSum[5];
char tmp_buffer[50];
char szCommand[SS_COMMAND_SIZE];
int len;

sprintf(tmp_buffer, "%4.4X%4.4X%s",
SS_TIMEOUT_SIZE, m_iSsSeqNum, SS_TIMEOUT_MSG);

len = strlen(tmp_buffer);
vCalcCheckSum(szCheckSum, tmp_buffer, len);
szCommand[0] = SS_STX_SS;
sprintf(szCommand + 1, "%s%s", tmp_buffer, szCheckSum);
len = strlen(szCommand);
szCommand[len++] = 'A';
szCommand[len] = '\0';

vGenReplyMsg(ppoReply, szCommand, eIfType, DS_GI_TIMEOUT_ERROR);
}


void BASE_clSsMsg::vGenBadCommandMsg(BASE_clMessage** ppoReply,
BASE_enumIfType eIfType)
{
char szCheckSum[5];
char tmp_buffer[50];
char szCommand[SS_COMMAND_SIZE];
int len;

sprintf(tmp_buffer, "%4.4X%4.4X%s",
SS_COMMAND_BAD_SIZE, m_iSsSeqNum, SS_COMMAND_BAD_MSG);

len = strlen(tmp_buffer);
vCalcCheckSum(szCheckSum, tmp_buffer, len);
szCommand[0] = SS_STX_SS;
sprintf(szCommand + 1, "%s%s", tmp_buffer, szCheckSum);
len = strlen(szCommand);
szCommand[len++] = 'A';
szCommand[len] = '\0';
vGenReplyMsg(ppoReply, szCommand, eIfType, DS_GI_COMMAND_ERROR);
}


int BASE_clSsMsg::iDsResult(char* pszReply)
{
const char* routine = "BASE_clSsMsg::iDsResult";
char buff[BASE_SS_COMMAND_SIZE];

if (strstr(pszReply, SS_TIMEOUT_MSG) != NULL)
{
sprintf(buff, "Timeout: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return DS_GI_TIMEOUT_ERROR;
}
else if (strstr(pszReply, SS_COMMAND_BAD_MSG) != NULL)
{
sprintf(buff, "Bad command: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return DS_GI_COMMAND_ERROR;
}
else
{
return DS_GI_OK;
}
}


int BASE_clSsMsg::iGiResult(char* pszReply)
{
const char* routine = "BASE_clSsMsg::iGiResult";
char buff[BASE_SS_COMMAND_SIZE];
int iRc;

sscanf(pszReply + 13, "%4X", &iRc);

if (iRc == GI_OK)
{
return GI_OK;
}
else if (iRc & GI_SEQ_ERROR)
{
sprintf(buff, "Sequence error: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return (iRc & GI_DO_NOT_RETRY == 0) ?
GI_SEQ_ERROR : GI_SEQ_ERROR_NO_RETRY;
}
else if(iRc & GI_CHECKSUM_ERROR)
{
sprintf(buff, "Checksum error: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return GI_CHECKSUM_ERROR;
}
else if(iRc & GI_PACKET_SIZE_ERROR)
{
sprintf(buff, "Packet size error: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return GI_PACKET_SIZE_ERROR;
}
else if(iRc & GI_TIMEOUT_ERROR)
{
sprintf(buff, "Timeout: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return GI_TIMEOUT_ERROR;
}
else if ((iRc & GI_ERROR_PRESENT) || (iRc & GI_MULTI_ERROR_PRESENT))
{
sprintf(buff, "Multiple errors: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return GI_MULTI_ERROR_PRESENT;
}
else
{
sprintf(buff, "Unknown reply: <%s>", pszReply);
BASE_LOG_ERROR(routine, buff);
return GI_UNKNOWN;
}
}
/******************end of BASE_clSsMsg.cpp**************************/
/******************BASE_clSsMsg.h************************************/
/*-------------------------------------------------------------------------
*
* Copyright (C) Rogers Engineering 2001
*
*-------------------------------------------------------------------------
*
* $Workfile$
*
* $Revision$
* $Date$
*
* $Author$
*
* $Logfile$
*
*-------------------------------------------------------------------------
*
* Original File: BASE_clSsMsg.h
*
* Originator: Tony Wong
*
* Description: This file contains the definitions for class BASE_clSsMsg
* .
*
*-------------------------------------------------------------------------
*/

//
/*-------------------------------------------------------------------------
*
* $Log$
*
*-------------------------------------------------------------------------
*/


#include "BASE_clSsReplyMsg.h"

#ifndef BASE_clSsMsg_h
#define BASE_clSsMsg_h 1

// The following definitions are inherited from old dev_lu.h
#define SS_CHECKSUM_ERROR "MAKEB,Z00.FD8C"
#define SS_INVALID_STATE_RETURNED "MAKEB,Z04.FD88"
#define SS_PREFIX_ERROR "MAKEB,Z06.FD86"
#define SS_TIMEOUT_MSG "00010010"
#define SS_COMMAND_BAD_MSG "000100024001"
#define SS_INVALID_1 "DFH"
#define SS_INVALID_2 " RRRRRRRRR"
#define SS_COMMAND_SIZE 1920 // largest msg from SS
#define SS_MIN_COMMAND_SIZE 5
#define SS_STX_SS 42
#define SS_STX_GIA 42
#define SS_STX_GID 2
#define SS_ETX 13
#define SS_COMMAND_BAD_SIZE 10
#define SS_TIMEOUT_SIZE 8
#define SS_TIMEOUT_REC_TYPE 0
#define SS_BAD_CMMD_REC_TYPE 1


#define DS_GI_OK 1
#define DS_GI_CHECKSUM_ERROR 2
#define DS_GI_INVALID_STATE_RETURNED 3
#define DS_GI_PREFIX_ERROR 4
#define DS_GI_TIMEOUT_ERROR 5
#define DS_GI_COMMAND_ERROR 6


#define GI_UNKNOWN 0
#define GI_OK 1
#define GI_ERROR_PRESENT 2
#define GI_CHECKSUM_ERROR 4
#define GI_PACKET_SIZE_ERROR 8
#define GI_TIMEOUT_ERROR 16
#define GI_SEQ_ERROR 32
#define GI_SEQ_ERROR_NO_RETRY 33
#define GI_MULTI_ERROR_PRESENT 256
#define GI_DO_NOT_RETRY 512


class BASE_clSsMsg : public BASE_clMessage
{
// Operations
public:
BASE_clSsMsg() : BASE_clMessage()
{
m_szCommand[0] = 0;
m_iSsSeqNum = 0;
m_iMbiKey = 0;
vSetType(BASE_eSS);
}

BASE_clSsMsg(uchar_t *pbyStream, int iStreamLength);

virtual ~BASE_clSsMsg() {}
virtual void vReadBodyFromStream();
virtual void vWriteBodyToStream();

virtual void vSetDataSize()
{
m_nDataSize = strlen(m_szCommand) + 1;
}

virtual void vPrintBody();

// Access functions
const char *pszGetCommand() const { return m_szCommand; }
BASE_enumRetCode eSetCommand(char* pszCommand);

BASE_enumRetCode eConvertCommand(char* pszCommand,
BASE_enumIfType eIfType);
BASE_enumRetCode eMakeCommand(char* pszCommand,
BASE_enumIfType eIfType);

int iGetSsSeqNum() { return m_iSsSeqNum; }
void vSetSsSeqNum(int iSsSeqNum) { m_iSsSeqNum = iSsSeqNum; }

virtual void vCalcCheckSum(char* pszCheckSum, char* pcStream, int iCheckSize);

void vGenReplyMsg(BASE_clMessage** ppoReply, char* pszReply,
BASE_enumIfType eIfType, long lReplyCode = DS_GI_OK);
void vGenTimeoutMsg(BASE_clMessage** ppoReply, BASE_enumIfType eIfType);
void vGenBadCommandMsg(BASE_clMessage** ppoReply, BASE_enumIfType eIfType);
int iDsResult(char* pszReply);
int iGiResult(char* pszReply);

// Attributes
protected:
char m_szCommand[BASE_SS_COMMAND_SIZE];
int m_iSsSeqNum;
int m_iMbiKey;
};

#endif
/*******************end of BASE_clSsMsg.h********************/


See More: what kind of cc-error? please help

Report •

#1
May 17, 2011 at 11:05:47
Does the class BASE_clSsMsg have any non-inlined, non-pure virtual functions?

How To Ask Questions The Smart Way


Report •

#2
May 18, 2011 at 12:14:31
NO. I think the issue is same as "Undefined first referenced symbol in file" problem because I make a c-object, a cpp object is calling my c-function, then lint both objects to become a lib file. when I use the new lib in application, Undefined symbol error happened.
I have checked c/c++ header file, it is clearly written
#ifdef __cplusplus
extern "c" {
#endif
in my extern header file. Could anybody solve this lint problem?
thank you!

Report •

#3
May 18, 2011 at 13:21:19
#ifdef __cplusplus
extern "c" {
#endif

This is a pretty standard block; it allows you to mix C and C++ code. It shouldn't be causing a problem; at the very least, it should generate a different error.

EDIT: It'd help if you pasted the entire error, but it looks like your make file is messed up. Specifically, it looks like it isn't building all of the prerequisites.

How To Ask Questions The Smart Way


Report •

Related Solutions

#4
May 19, 2011 at 06:48:21
1.Generate a new c-object NetService.o
2.Modify a existing cpp-object BASE_clSerialPort.o
3. Merge them and other existing objects to a library(Base.lib)
Here is the makefile output without problem
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -c NetService.c -L/export/home/jinl/dev/lib -L/user/ccs/lib -lsocke
t -lnsl -lkstat /export/home/jinl/dev/lib/Base.clLog.o -ldl /export/home/jin
l/dev/include/NetService.h /export/home/jinl/dev/include/stardard.h
ar crv /export/home/jinl/dev/lib/Base.lib NetService.o
a - NetService.o
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -c BASE_clSerialPort.cpp -o BASE_clSerialPort.o -L/export/home/jinl/d
ev/lib -L/user/ccs/lib -lsocket -lnsl /export/home/jinl/dev/lib/Base.lib -l
dl
ar crv /export/home/jinl/dev/lib/Base.lib BASE_clSerialPort.o
a - BASE_clSerialPort.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clBcCom
mStats.o
a - /export/home/jinl/dev/lib/BASE_clBcCommStats.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clBcCom
mStatsMsg.o
a - /export/home/jinl/dev/lib/BASE_clBcCommStatsMsg.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clBcCom
mStatsRequestMsg.o
a - /export/home/jinl/dev/lib/BASE_clBcCommStatsRequestMsg.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clClien
tSocket.o
a - /export/home/jinl/dev/lib/BASE_clClientSocket.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clConnI
nfoNoticeMsg.o
a - /export/home/jinl/dev/lib/BASE_clConnInfoNoticeMsg.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clConnI
nfoTable.o
a - /export/home/jinl/dev/lib/BASE_clConnInfoTable.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clDGMSo
cket.o
a - /export/home/jinl/dev/lib/BASE_clDGMSocket.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clGiInt
erface.o
a - /export/home/jinl/dev/lib/BASE_clGiInterface.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clHelpe
r.o
a - /export/home/jinl/dev/lib/BASE_clHelper.o
ar crv /export/home/jinl/dev/lib/Base.lib /export/home/jinl/dev/lib/BASE_clIfExe
Parm.o
****************************************************
using the new lib to generate a new application, here is makefile output
****************************************************
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -c DEV_Main.cpp
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -c DEV_clComAndCtrl.cpp
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -c DEV_clBoxHandler.cpp
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -c DEV_clMbiHandler.cpp
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -c DEV_VerMgr.cpp
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -ptr. -o /export/home/jinl/dev/bin/dev_server DEV_Main.o DEV_clComAn
Ctrl.o DEV_clBoxHandler.o DEV_clMbiHandler.o DEV_VerMgr.o -L/usr/ccs/lib -lsoc
et -lnsl /export/home/jinl/dev/lib/Common.lib /export/home/jinl/dev/lib/Base
lib -ldl
*** Error code 1
"/export/home/jinl/dev/include/BASE_clDGMSocket.h", line 107: Warning: BASE_clDG
MSocket::eExchange hides the function BASE_clSocket::eExchange(const BASE_clMess
age&, BASE_clMessage**, int, BASE_clSocket*).
"/export/home/jinl/dev/include/BASE_clDGMSocket.h", line 107: Warning: BASE_clDG
MSocket::eExchange hides the function BASE_clSocket::eExchange(const char*, char
*, int, int, BASE_clSocket*).
"/export/home/jinl/dev/include/BASE_clDGMSocket.h", line 107: Warning: BASE_clDG
MSocket::eExchange hides the function BASE_clSocket::eExchange(const unsigned ch
ar*, const int, unsigned char*, int*, int, BASE_clSocket*).
"/export/home/jinl/dev/include/BASE_clSsReplyMsg.h", line 75: Warning: BASE_clSs
ReplyMsg::vSetDataSize hides the virtual function BASE_clMessage::vSetDataSize(s
hort).
14 Warning(s) detected.
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -c DEV_clMbiHandler.cpp
"/export/home/jinl/dev/include/BASE_clSsReplyMsg.h", line 75: Warning: BASE_clSs
ReplyMsg::vSetDataSize hides the virtual function BASE_clMessage::vSetDataSize(s
hort).
"/export/home/jinl/dev/include/BASE_clSsMsg.h", line 133: Warning: BASE_clSsMsg:
:vSetDataSize hides the virtual function BASE_clMessage::vSetDataSize(short).
"/export/home/jinl/dev/include/BASE_clMciMsg.h", line 130: Warning: BASE_clMciMs
g::vSetDataSize hides the virtual function BASE_clMessage::vSetDataSize(short).
"DEV_clMbiHandler.cpp", line 75: Warning: String literal converted to char* in f
ormal argument pszMsg in call to BASE_clException::BASE_clException(int, char*).
"DEV_clMbiHandler.cpp", line 75: Warning: String literal converted to char* in f
ormal argument pszMsg in call to BASE_clException::BASE_clException(int, char*).
5 Warning(s) detected.
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -c DEV_VerMgr.cpp
"DEV_VerMgr.cpp", line 74: Warning: String literal converted to char* in initial
ization.
1 Warning(s) detected.
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -ptr. -o /export/home/jinl/dev/bin/dev_server DEV_Main.o DEV_clComAnd
Ctrl.o DEV_clBoxHandler.o DEV_clMbiHandler.o DEV_VerMgr.o -L/usr/ccs/lib -lsock
et -lnsl /export/home/jinl/dev/lib/Common.lib /export/home/jinl/dev/lib/Base.
lib -ldl
Undefined first referenced
symbol in file
TCP_Send /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
GetServerConnection /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
TCP_Receive3 /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
ld: fatal: Symbol referencing errors. No output written to /export/home/jinl/dev
/bin/dev_server
*** Error code 1
make: Fatal error: Command failed for target `/export/home/jinl/dev/bin/dev_serv
er'
$pwd>
TCP_Send/GetServerConnection/TCP_Receive3 are from NetService.c

Report •

#5
May 22, 2011 at 08:31:13
TCP_Send/GetServerConnection/TCP_Receive3 are from NetService.c
You might try rebuilding NetService.o, and make sure the linker sees it. If everything's valid, add Netservice.o to this line:
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/
ev/include -ptr. -o /export/home/jinl/dev/bin/dev_server DEV_Main.o DEV_clComAn
Ctrl.o DEV_clBoxHandler.o DEV_clMbiHandler.o DEV_VerMgr.o -L/usr/ccs/lib -lsoc
et -lnsl /export/home/jinl/dev/lib/Common.lib /export/home/jinl/dev/lib/Base
lib -ldl

How To Ask Questions The Smart Way


Report •

#6
May 24, 2011 at 11:35:42
It wouldn't help. Here is a new output, same as before. Anyway, thank you so much.
CC +w -mt -xchip=ultra -xarch=v8plus -DSOLARIS -DAPP_DEBUG -I/export/home/jinl/d
ev/include -ptr. -o /export/home/jinl/dev/bin/dev_server DEV_Main.o DEV_clComAnd
Ctrl.o DEV_clBoxHandler.o DEV_clMbiHandler.o DEV_VerMgr.o NetService.o -L/usr/cc
s/lib -lsocket -lnsl /export/home/jinl/dev/lib/Common.lib /export/home/jinl/
dev/lib/Base.lib -ldl
Undefined first referenced
symbol in file
TCP_Send /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
GetServerConnection /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
TCP_Receive3 /export/home/jinl/dev/lib/Base.lib(BASE_clSe
rialPort.o)
ld: fatal: Symbol referencing errors. No output written to /export/home/jinl/dev
/bin/dev_server
*** Error code 1
make: Fatal error: Command failed for target `/export/home/jinl/dev/bin/dev_serv
er'
$pwd>

Report •

Ask Question