====================[ Build | DCMTKTest | Debug ]===============================
D:JetBrainsToolboxCLionbincmakewinx64bincmake.exe --build E:ProjectsCLionProjectsCmakeTestsDCMTKTestcmake-build-debug --target DCMTKTest -j 10
[1/2] Building CXX object CMakeFiles/DCMTKTest.dir/main.cpp.obj
[2/2] Linking CXX executable DCMTKTest.exe
FAILED: DCMTKTest.exe
C:Windowssystem32cmd.exe /C "cd . && D:JetBrainsToolboxCLionbinmingwbing++.exe -g CMakeFiles/DCMTKTest.dir/main.cpp.obj -o DCMTKTest.exe -Wl,--out-implib,libDCMTKTest.dll.a -Wl,--major-image-version,0,--minor-image-version,0 vcpkg_installed/x64-windows-static-md/debug/lib/i2dd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmxmld.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmjpegd.lib vcpkg_installed/x64-windows-static-md/debug/lib/ijg8d.lib vcpkg_installed/x64-windows-static-md/debug/lib/ijg12d.lib vcpkg_installed/x64-windows-static-md/debug/lib/ijg16d.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmjplsd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmtkcharlsd.lib vcpkg_installed/x64-windows-static-md/debug/lib/cmrd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmwlmd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmpstatd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmtlsd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmsrd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmimaged.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmdsigd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmqrdbd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmnetd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmrtd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmimgled.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmsegd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmtractd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmpmapd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmectd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmfgd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmiodd.lib vcpkg_installed/x64-windows-static-md/debug/lib/dcmdatad.lib vcpkg_installed/x64-windows-static-md/debug/lib/oflogd.lib vcpkg_installed/x64-windows-static-md/debug/lib/ofstdd.lib vcpkg_installed/x64-windows-static-md/debug/lib/oficonvd.lib -liphlpapi -lws2_32 -lnetapi32 -lwsock32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && C:Windowssystem32cmd.exe /C "cd /D E:ProjectsCLionProjectsCmakeTestsDCMTKTestcmake-build-debug && C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -noprofile -executionpolicy Bypass -file F:/vcpkg/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary E:/Projects/CLionProjects/CmakeTests/DCMTKTest/cmake-build-debug/DCMTKTest.exe -installedDir E:/Projects/CLionProjects/CmakeTests/DCMTKTest/cmake-build-debug/vcpkg_installed/x64-windows-static-md/debug/bin -OutVariable out""
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: CMakeFiles/DCMTKTest.dir/main.cpp.obj: in function `main':
E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:11: undefined reference to `DcmFileFormat::DcmFileFormat()'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:16: undefined reference to `OFFilename::OFFilename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:16: undefined reference to `DcmFileFormat::loadFile(OFFilename const&, E_TransferSyntax, E_GrpLenEncoding, unsigned int, E_FileReadMode)'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:16: undefined reference to `OFFilename::~OFFilename()'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:17: undefined reference to `DcmFileFormat::getDataset()'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:18: undefined reference to `DicomImage::DicomImage(char const*, unsigned long, unsigned long, unsigned long)'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:23: undefined reference to `DcmFileFormat::~DcmFileFormat()'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:16: undefined reference to `OFFilename::~OFFilename()'
D:JetBrainsToolboxCLionbinmingwbin/ld.exe: E:/Projects/CLionProjects/CmakeTests/DCMTKTest/main.cpp:23: undefined reference to `DcmFileFormat::~DcmFileFormat()'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
I testing dcmtk with Clion and vcpkg.
This is my vcpkg.json
{
"name" : "dcmtk-test",
"version-string" : "1.0.0",
"builtin-baseline" : "3d72d8c930e1b6a1b2432b262c61af7d3287dcd0",
"dependencies" : [ {
"name" : "dcmtk",
"version>=" : "3.6.8#6",
"features": ["icu"]
} ]
}
This is my CMakeLists.txt
cmake_minimum_required(VERSION 3.28)
project(DCMTKTest)
set(CMAKE_CXX_STANDARD 17)
add_executable(${PROJECT_NAME} main.cpp)
find_package(DCMTK CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE DCMTK::DCMTK)
If my main.cpp
code is as follows, it can successfully execute and output ‘Using DCMTK version 3.6.8’
#include <iostream>
#include <dcmtk/config/osconfig.h>
#include <dcmtk/ofstd/ofcond.h>
#include <dcmtk/dcmdata/dctk.h>
#include <dcmtk/dcmdata/dcfilefo.h>
#include <dcmtk/dcmimgle/dcmimage.h>
int main() {
const OFString version = OFFIS_DCMTK_VERSION_STRING;
std::cout << "Using DCMTK version " << version << std::endl;
return 0;
}
But if my main.cpp
code is as follows, it will report the error.
#include <iostream>
#include <dcmtk/config/osconfig.h>
#include <dcmtk/ofstd/ofcond.h>
#include <dcmtk/dcmdata/dctk.h>
#include <dcmtk/dcmdata/dcfilefo.h>
#include <dcmtk/dcmimgle/dcmimage.h>
int main() {
DcmFileFormat format;
const std::string file_path = "D:/System/Desktop/PACS_CC/"
"1.2.826.0.1.3680043.2.461.11762325.1101456484/"
"1.2.392.200036.9125.3.35174147234195.64950464023.20243208/"
"6778db7b9506a04a52a2c063ad6e4c97.dcm";
if (const OFCondition condition = format.loadFile(file_path); condition.good()) {
DcmDataset *dataset = format.getDataset();
auto *img = new DicomImage(file_path.c_str());
auto data = img->getOutputData(0, 0);
std::cout << dataset->getNumberOfValues();
}
return 0;
}
My VCPKG_TARGET_TRIPLE
is x64-windows-static-md
, and the operating system I tested is Windows 10 Professional 22H2
, and Clion version is 2024.1.4
.
I have other libraries that I need to use, and I have already tested them with vcpkg.
However, dcmtk is hindering me, and I do not want to give up using vcpkg for the time being.
Can anyone help me?
Programming Novice is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.