This question is related to "Extracting Tag Data using Borland C++ Builder" on the general list, which I posted last week. We thought we would try to compile first using MSVC++6.0, and then try porting to C++ Builder.
I have created a project, dicomExtract, with a dependency upon dcmdata, which I have as depending upon ofstd, as suggested in the above thread. I have also copied the config dir from dcmtk and pasted it into the project folder. The .cpp file of the new project uses the example code from the dcmtk documentation as below:
//begin file
#include "osconfig.h" // I've added this
#include "dcmtk.h" // and this
int main ()
{
DcmFileFormat fileformat;
OFCondition status = fileformat.loadFile("test.dcm");
if (status.good())
{
OFString patientsName;
if (fileformat.getDataset()->findAndGetOFString(DCM_PatientsName, patientsName).good())
{
cout << "Patient's Name: " << patientsName << endl;
} else
cerr << "Error: cannot access Patient's Name!" << endl;
} else
cerr << "Error: cannot read DICOM file (" << status.text() << ")" << endl;
return 0;
}
//end file
If I set either dcmdata or ofstd as the active project, they compile and link OK. However with dicomExtract as the active project, I get the following errors:
LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs; use /NODEFAULTLIB:library
End Pass1
dcmdata.lib(dcuid.obj) : error LNK2001: unresolved external symbol _WSACleanup@0
dcmdata.lib(dcuid.obj) : error LNK2001: unresolved external symbol _gethostbyname@4
dcmdata.lib(dcuid.obj) : error LNK2001: unresolved external symbol _gethostname@8
dcmdata.lib(dcuid.obj) : error LNK2001: unresolved external symbol _WSAStartup@8
dcmdata.lib(dcuid.obj) : error LNK2001: unresolved external symbol _Netbios@4
dcmdata.lib(dcistrmz.obj) : error LNK2001: unresolved external symbol _inflateInit2_
dcmdata.lib(dcistrmz.obj) : error LNK2001: unresolved external symbol _inflateInit_
dcmdata.lib(dcistrmz.obj) : error LNK2001: unresolved external symbol _inflateEnd
dcmdata.lib(dcistrmz.obj) : error LNK2001: unresolved external symbol _inflate
dcmdata.lib(dcostrmz.obj) : error LNK2001: unresolved external symbol _deflateInit2_
dcmdata.lib(dcostrmz.obj) : error LNK2001: unresolved external symbol _deflateEnd
dcmdata.lib(dcostrmz.obj) : error LNK2001: unresolved external symbol _deflate
Debug/DicomExtract.exe : fatal error LNK1120: 12 unresolved externals
Error executing link.exe.
DicomExtract.exe - 13 error(s), 1 warning(s)
I'm wondering if my file includes above are correct, or whether I've omitted something else, such as another module/dependency.
Thank you in advance.
David
Loading Patient File and Outputting Patient Name
Moderator: Moderator Team
-
- DCMTK Developer
- Posts: 117
- Joined: Tue, 2004-11-02, 17:21
- Location: Oldenburg, Germany
- Contact:
Thanks for replying, Thomas.
I've set up my include and lib directories just as I had for compiling DCMTK, which I can do successfully, so I'm thinking that some other issues are causing the linker errors and library warning.
At the risk of sounding stupid, do I need to have a makefile for this small project, as DCMTK does for the full set of tools?
Thanks in advance.
David
I've set up my include and lib directories just as I had for compiling DCMTK, which I can do successfully, so I'm thinking that some other issues are causing the linker errors and library warning.
At the risk of sounding stupid, do I need to have a makefile for this small project, as DCMTK does for the full set of tools?
Thanks in advance.
David
-
- DCMTK Developer
- Posts: 117
- Joined: Tue, 2004-11-02, 17:21
- Location: Oldenburg, Germany
- Contact:
Yes. I have the same errors.
The project directory looks like this:
top level folder -> dicomExtract folder
sub-folder -> config
sub-folder -> dcmdata
sub-folder -> ofstd
sub-folder -> libpng-1.2.5
sub-folder -> libxml2-2.5.7
sub-folder -> tiff-3.6.1
sub-folder -> zlib-1.2.1
all autocreated project files -> dicomextract.cpp file ( as above in first post )
-> DicomExtract.dsw
-> DicomExtract.dsp
-> etc...
Dependencies are as indicated in my first post, also.
Thanks for any help.
David
The project directory looks like this:
top level folder -> dicomExtract folder
sub-folder -> config
sub-folder -> dcmdata
sub-folder -> ofstd
sub-folder -> libpng-1.2.5
sub-folder -> libxml2-2.5.7
sub-folder -> tiff-3.6.1
sub-folder -> zlib-1.2.1
all autocreated project files -> dicomextract.cpp file ( as above in first post )
-> DicomExtract.dsw
-> DicomExtract.dsp
-> etc...
Dependencies are as indicated in my first post, also.
Thanks for any help.
David
-
- OFFIS DICOM Team
- Posts: 1445
- Joined: Tue, 2004-11-02, 17:22
- Location: Oldenburg, Germany
- Contact:
The unresolved external symbols mean that you are not linking against "netapi32" and "wsock32" (as explained in FAQ #27) and also not linking against zlib (zlib_o.lib) from the DCMTK support libraries.
The library conflict means that some part of your code was not compiled with /MT as code generation option, but with something else - /MD, /MTd or /MDd.
The library conflict means that some part of your code was not compiled with /MT as code generation option, but with something else - /MD, /MTd or /MDd.
Who is online
Users browsing this forum: Google [Bot] and 1 guest