首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Visual系列中自行解决错误LNK2019

如何在Visual系列中自行解决错误LNK2019
EN

Stack Overflow用户
提问于 2018-04-03 14:25:24
回答 1查看 205关注 0票数 0

在dcmtk学习期间,我遇到了数百个错误"LNK2019“。每次我只能搜索它,寻找告诉我应该添加哪一个库的人。我想知道我是否能一个人找到我需要的自由。

我的工作IDE是2015,今天的代码如下所示。

代码语言:javascript
复制
#include <dcmtk\config\osconfig.h>
#include <dcmtk\dcmdata\dcdatset.h>
#include <dcmtk\dcmdata\dctk.h>
#include <dcmtk\dcmjpeg\djcodecd.h>
#include <dcmtk\dcmjpls\djdecode.h>
#include <dcmtk\dcmjpeg\djdecode.h>



int main() {
    DJDecoderRegistration::registerCodecs(); // register JPEG codecs
    DcmFileFormat fileformat;
    if (fileformat.loadFile("1").good())
    {
        DcmDataset *dataset = fileformat.getDataset();
        // decompress data set if compressed
        dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL);
        // check if everything went well
        if (dataset->canWriteXfer(EXS_LittleEndianExplicit))
        {
            fileformat.saveFile("2", EXS_LittleEndianExplicit);
        }
    }
    DJDecoderRegistration::cleanup(); // deregister JPEG codecs
    return 0;
}

此代码中出现错误 这是我的附加链接器

实际上,这个问题已经在混乱中解决了,我只是在代码中添加了大量额外的库。

代码语言:javascript
复制
#pragma comment(lib,"ofstd")
#pragma comment(lib,"dcmdata")
#pragma comment(lib,"dcmtls")
#pragma comment(lib,"dcmnet")
#pragma comment(lib,"dcmqrdb")
#pragma comment(lib,"dcmimgle")
#pragma comment(lib,"dcmimage")
#pragma comment(lib,"dcmjpeg")
#pragma comment(lib,"ijg8")
#pragma comment(lib,"ijg12")
#pragma comment(lib,"ijg16")
#pragma comment(lib,"dcmdsig")
#pragma comment(lib,"dcmsr")
#pragma comment(lib,"dcmpstat")
#pragma comment(lib,"dcmwlm")
#pragma comment(lib,"netapi32")
#pragma comment(lib,"wsock32")

我曾经在堆栈溢出中找到一个人,提出了一个解决这个问题的方法。但是,他的方法是使用bash或其他Visual无法执行的操作。这就是我来这里寻求帮助的原因。谢谢任何人能来帮忙!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 20:23:42

根据您使用的DCMTK版本以及您的程序包括哪个DCMTK模块,您必须链接所需的DCMTK库。在您的示例中,需要"ofstd、oflog、dcmdata、dcmimgle、dcmimage、dcmjpeg、ijg8、ijg12、ijg16“。

对于DCMTK3.6.0,有一个以图形方式显示依赖关系的图表:https://support.dcmtk.org/redmine/projects/dcmtk/wiki/Modules

同样,FAQ #26可能会有所帮助:https://forum.dcmtk.org/viewtopic.php?f=4&t=36

对于较新的DCMTK版本(例如3.6.2或3.6.3),我建议使用CMake导出特性。在将DCMTK安装到单独的目录后,可以为示例程序使用以下CMakeLists.txt文件:

代码语言:javascript
复制
# DCMTK Demo Project

# declare project
PROJECT(DCMTK_DEMO)

# minimum CMake version required
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)

# specify DCMTK's (default) installation directory
SET(DCMTK_DIRECTORY "C:/Users/dicom/dcmtk-3.6.3-install" CACHE PATH "Directory where DCMTK library is installed.")

# approach #1: use FIND_PACKAGE() to search for installed DCMTK
#FIND_PACKAGE(DCMTK REQUIRED CONFIG PATHS ${DCMTK_DIRECTORY} NO_DEFAULT_PATH)

# approach #2: include DCMTK's CMake configuration directly
INCLUDE(${DCMTK_DIRECTORY}/cmake/DCMTKConfig.cmake)

# declare include directories
INCLUDE_DIRECTORIES(${DCMTK_INCLUDE_DIRS})

# declare executable and link required libraries
ADD_EXECUTABLE(demo demo.cc)
TARGET_LINK_LIBRARIES(demo ${DCMTK_LIBRARIES})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49632531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档