SOS,a simple example of dcmnet link error! (linux2.4)

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
Zhou_jianzhong
Posts: 9
Joined: Fri, 2009-06-12, 01:56

SOS,a simple example of dcmnet link error! (linux2.4)

#1 Post by Zhou_jianzhong »

/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dimse.o)(.text+0x10be): In function `sendDcmDataset(T_ASC_Association*, DcmDataset*, unsigned char, E_TransferSyntax, DUL_DATAPDV, void (*)(void*, unsigned long), void*)':
: undefined reference to `DcmOutputBufferStream::DcmOutputBufferStream[in-charge](void*, unsigned long)'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dimse.o)(.text+0x12e9): In function `sendDcmDataset(T_ASC_Association*, DcmDataset*, unsigned char, E_TransferSyntax, DUL_DATAPDV, void (*)(void*, unsigned long), void*)':
: undefined reference to `DcmOutputBufferStream::flushBuffer(void*&, unsigned long&)'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dimse.o)(.text+0x1620): In function `sendDcmDataset(T_ASC_Association*, DcmDataset*, unsigned char, E_TransferSyntax, DUL_DATAPDV, void (*)(void*, unsigned long), void*)':
: undefined reference to `DcmOutputBufferStream::~DcmOutputBufferStream [in-charge]()'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dimse.o)(.text+0x168a): In function `sendDcmDataset(T_ASC_Association*, DcmDataset*, unsigned char, E_TransferSyntax, DUL_DATAPDV, void (*)(void*, unsigned long), void*)':
: undefined reference to `DcmOutputBufferStream::~DcmOutputBufferStream [in-charge]()'

link command:
c++ -O -D_REENTRANT -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L -Wall -o DicomTkImage DicomTkImage.o -ldcmimage -ldcmimgle -ldcmdata -ldcmnet -lofstd -ltiff -ljpeg -ldcmtls -ldcmqrdb -ldcmwlm -ldcmsr -ldcmdsig -ldcmpstat -lz -lpng -lz -lm -lrt -lpthread -lnsl

source:
T_ASC_Network* net; // network struct, contains DICOM upper layer FSM etc.
ASC_initializeNetwork(NET_REQUESTOR, 0, 1000 /* timeout */, &net);

T_ASC_Parameters* params; // parameters of association request
ASC_createAssociationParameters(&params, ASC_DEFAULTMAXPDU);

// set calling and called AE titles
ASC_setAPTitles(params, "ECHOSCU", "ANY-SCP", NULL);

// the DICOM server accepts connections at 192.168.0.147 port 104
ASC_setPresentationAddresses(params, "localhost", "192.168.0.147:104");

// list of transfer syntaxes, only a single entry here
const char* ts[] = { UID_LittleEndianImplicitTransferSyntax };

// add presentation context to association request
ASC_addPresentationContext(params, 1, UID_VerificationSOPClass, ts, 1);

// request DICOM association
T_ASC_Association *assoc;
if (ASC_requestAssociation(net, params, &assoc).good())
{
if (ASC_countAcceptedPresentationContexts(params) == 1)
{
// the remote SCP has accepted the Verification Service Class
DIC_US id = assoc->nextMsgID++; // generate next message ID
DIC_US status; // DIMSE status of C-ECHO-RSP will be stored here
DcmDataset *sd = NULL; // status detail will be stored here
// send C-ECHO-RQ and handle response
DIMSE_echoUser(assoc, id, DIMSE_BLOCKING, 0, &status, &sd);
delete sd; // we don't care about status detail
}
}

ASC_releaseAssociation(assoc); // release association
ASC_destroyAssociation(&assoc); // delete assoc structure
ASC_dropNetwork(&net); // delete net structure

Jörg Riesmeier
ICSMED DICOM Services
ICSMED DICOM Services
Posts: 2217
Joined: Fri, 2004-10-29, 21:38
Location: Oldenburg, Germany

#2 Post by Jörg Riesmeier »

The link order is significant. See FAQ #27.

Zhou_jianzhong
Posts: 9
Joined: Fri, 2009-06-12, 01:56

thanks a lot.it's ok. but I still have other problem!

#3 Post by Zhou_jianzhong »

[root@localhost dicomtk]# c++ -O -I/usr/include/libxml2 -D_REENTRANT -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L -Wall -L../libsrc -o DicomTkImage DicomTkImage.o -ldcmpstat -ldcmimage -ldcmimgle -ldcmsr -ldcmtls -ldcmnet -ldcmdata -lofstd -lz -lpng -lz -lm -lrt -lpthread -lnsl
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dul.o)(.text+0x3314): In function `receiveTransportConnectionTCP(PRIVATE_NETWORKKEY**, DUL_BLOCKOPTIONS, int, DUL_ASSOCIATESERVICEPARAMETERS*, PRIVATE_ASSOCIATIONKEY**)':
: undefined reference to `request_init'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dul.o)(.text+0x3325): In function `receiveTransportConnectionTCP(PRIVATE_NETWORKKEY**, DUL_BLOCKOPTIONS, int, DUL_ASSOCIATESERVICEPARAMETERS*, PRIVATE_ASSOCIATIONKEY**)':
: undefined reference to `request_set'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dul.o)(.text+0x3337): In function `receiveTransportConnectionTCP(PRIVATE_NETWORKKEY**, DUL_BLOCKOPTIONS, int, DUL_ASSOCIATESERVICEPARAMETERS*, PRIVATE_ASSOCIATIONKEY**)':
: undefined reference to `request_set'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dul.o)(.text+0x3347): In function `receiveTransportConnectionTCP(PRIVATE_NETWORKKEY**, DUL_BLOCKOPTIONS, int, DUL_ASSOCIATESERVICEPARAMETERS*, PRIVATE_ASSOCIATIONKEY**)':
: undefined reference to `request_set'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libdcmnet.a(dul.o)(.text+0x3350): In function `receiveTransportConnectionTCP(PRIVATE_NETWORKKEY**, DUL_BLOCKOPTIONS, int, DUL_ASSOCIATESERVICEPARAMETERS*, PRIVATE_ASSOCIATIONKEY**)':
: undefined reference to `hosts_access'

Zhou_jianzhong
Posts: 9
Joined: Fri, 2009-06-12, 01:56

#4 Post by Zhou_jianzhong »

the problem is solved according to INSTALL. thanks very much!
On Unix platforms, if support for TCP wrappers is desired, a compiled version of the libwrap library and include file <tcpd.h> must be available during compilation of DCMTK

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest