dcmtk 3.6.7 + vcpkg + cmake

main.cpp

#include <dcmtk/config/osconfig.h>   // make sure OS specific configuration is included first
#include <dcmtk/dcmdata/dctk.h>

int main() {
    OFString version = OFFIS_DCMTK_VERSION_STRING;
    std::cout << "Using DCMTK version " << version << std::endl;
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.25)

project(core)

set(CMAKE_CXX_STANDARD 23)

set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(Boost_NO_WARN_NEW_VERSIONS 1)
set(CMAKE_NINJA_FORCE_RESPONSE_FILE "ON" CACHE BOOL "Force Ninja to use response files.")


find_package(spdlog REQUIRED)
find_package(asio CONFIG REQUIRED)
find_package(Crow CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
find_package(DCMTK CONFIG REQUIRED)
find_package(OpenCV REQUIRED)

find_package(VTK REQUIRED)
include("${VTK_USE_FILE}")
if (NOT VTK_FOUND)
  message(FATAL_ERROR "OffScreenRendering: Unable to find the VTK build folder.")
endif()


file(GLOB SRC_FILES core/src/*.cpp)
file(GLOB SRC_H_FILES core/src/*.h)

add_executable(core ${SRC_FILES} ${SRC_H_FILES})

if ("${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" STREQUAL "/")
    message(WARNING "No vcpkg install dir found, DCMTK definitions are not set")
else()
    target_compile_definitions(core
        PUBLIC
        "DCMTK_PREFIX=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}"
        "DCM_DICT_DEFAULT_PATH=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/dicom.dic:${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/private.dic"
        "DEFAULT_CONFIGURATION_DIR=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/etc/dcmtk/"
        "DEFAULT_SUPPORT_DATA_DIR=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/"
    )
endif()

target_link_libraries(core PRIVATE spdlog::spdlog_header_only asio::asio Crow::Crow nlohmann_json::nlohmann_json DCMTK::DCMTK DCMTK::oflog ${VTK_LIBRARIES} ${OpenCV_LIBS})

vtk_module_autoinit(
  TARGETS core
  MODULES ${VTK_LIBRARIES}
)

vcpkg.json

{
  "dependencies": [
    {
      "name": "spdlog",
      "version>=": "1.12.0"
    },
    {
      "name": "asio",
      "version>=": "1.28.2"
    },
    {
      "name": "crow",
      "version>=": "1.0-5"
    },
    {
      "name": "nlohmann-json",
      "version>=": "3.11.3"
    },
    {
      "name": "dcmtk",
      "version>=": "3.6.7"
    },
    {
      "name": "vtk",
      "version>=": "9.2.0-pv5.11.0#10"
    },
    {
      "name": "opencv",
      "version>=": "4.8.0"
    }
  ],
  "builtin-baseline": "9fd83fa98b5f2ae6188a6ba59a49837061db0a3a"
}

单独的CMakeLists.txt (用vcpkg可以不用)

cmake_minimum_required(VERSION 3.5)
project(MyDCMTKProject)

# Setup the toolchain file from vcpkg

#set(CMAKE_CXX_STANDARD 11)
#set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Find package
find_package(DCMTK CONFIG REQUIRED)


add_executable(main main.cpp)

    if ("${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" STREQUAL "/")
        message(WARNING "No vcpkg install dir found, DCMTK definitions are not set")
    else()
        target_compile_definitions(main
            PUBLIC
                "DCMTK_PREFIX=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}"
                "DCM_DICT_DEFAULT_PATH=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/dicom.dic:${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/private.dic"
                "DEFAULT_CONFIGURATION_DIR=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/etc/dcmtk/"
                "DEFAULT_SUPPORT_DATA_DIR=${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/dcmtk/"
        )
    endif()

target_link_libraries(main PRIVATE DCMTK::DCMTK DCMTK::oflog)
target_include_directories(main PRIVATE ${DCMTK_INCLUDE_DIRS})

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DCMTK(Digital Imaging and Communications in Medicine Toolkit)是一个用于处理医学影像和通信的开源软件包。而VS2019是微软公司发布的最新的集成开发环境。 DCMTK 3.6.7是DCMTK的一个版本号,它是指DCMTK软件包的第3个主要版本,补丁级别为7。DCMTK 3.6.7是一个相对较旧的版本,但仍广泛用于医学影像处理和通信领域。它具有一系列功能强大的工具和库,用于读取、写入和处理DICOM(医学影像和通信)格式的文件。 而VS2019是微软公司最新发布的Visual Studio集成开发环境的版本。它提供了一套全面的工具和资源,用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。VS2019具有强大的调试功能、智能代码编辑器、集成的版本控制等,可简化和加速开发过程。 在使用DCMTK 3.6.7与VS2019时,我们可以使用VS2019作为开发环境,并将DCMTK库集成到项目中。通过这种方式,我们可以使用VS2019的调试工具来跟踪和排查DCMTK相关应用程序的问题,并利用VS2019的其他功能和特性来简化开发流程。 需要注意的是,由于DCMTK 3.6.7与VS2019之间存在版本差异,可能需要进行一些适应性工作,以确保DCMTK的库与VS2019的开发环境兼容。在合并使用这两个工具时,我们应该参考DCMTK和VS2019的文档和指南,遵循它们的建议和推荐操作,以便获得最佳的使用体验和性能。 总之,DCMTK 3.6.7和VS2019都是在医学影像处理和应用程序开发中非常有用的工具。通过将它们结合使用,我们可以在VS2019的集成开发环境中更方便地开发和调试DCMTK相关的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值