Link错误!Link2001,比Link2019恶心多了!

蓝鹰 2012-08-24 03:41:53

1>dcmdata.lib(vrscan.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmdata.lib(dcpixseq.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmdata.lib(dcpxitem.obj) : error LNK2019: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z),该符号在函数 "public: log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmimgle.lib(diluptab.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmimgle.lib(dcmimage.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmimgle.lib(dimoimg.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmimgle.lib(didocu.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmimgle.lib(diutils.obj) : error LNK2001: 无法解析的外部符号 "public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
1>dcmdata.lib(vrscan.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcpixseq.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcpxitem.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcdirrec.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcbytstr.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcsequen.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcelem.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcostrmf.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)

.........
........
1>dcmdata.lib(dcmetinf.obj) : error LNK2019: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z),该符号在函数 "public: class DcmMetaInfo & __thiscall DcmMetaInfo::operator=(class DcmMetaInfo const &)" (??4DcmMetaInfo@@QAEAAV0@ABV0@@Z) 中被引用
1>dcmdata.lib(dcvr.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcuid.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcobject.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcvrobow.obj) : error LNK2001: 无法解析的外部符号 "public: void __thiscall log4cplus::Logger::forcedLog(int,class OFString const &,char const *,int,char const *)const " (?forcedLog@Logger@log4cplus@@QBEXHABVOFString@@PBDH1@Z)
1>dcmdata.lib(dcvr.obj) : error LNK2001: 无法解析的外部符号 "public: virtual __thiscall log4cplus::Logger::~Logger(void)" (??1Logger@log4cplus@@UAE@XZ)
1>dcmimgle.lib(diutils.obj) : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall log4cplus::Logger::removeAppender(class log4cplus::helpers::SharedObjectPtr<class log4cplus::Appender>)" (?removeAppender@Logger@log4cplus@@UAEXV?$SharedObjectPtr@VAppender@log4cplus@@@helpers@2@@Z)
1>dcmdata.lib(dctypes.obj) : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall log4cplus::Logger::removeAppender(class log4cplus::helpers::SharedObjectPtr<class log4cplus::Appender>)" (?removeAppender@Logger@log4cplus@@UAEXV?$SharedObjectPtr@VAppender@log4cplus@@@helpers@2@@Z)
1>D:\创造与梦想\我的C++\练习程序\DCMTK_Demo\Debug\DCMTK_Demo.exe : fatal error LNK1120: 11 个无法解析的外部命令



使用DCMTK的时候,出现了Link2001错误,这个错误比2019恶心多了,根本不知道是缺了什么库。
...全文
1538 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
edacgq 2014-08-08
  • 打赏
  • 举报
回复
楼主 我也遇到这个问题了 请问楼主后来怎么解决的啊 ?
ninininnin 2014-07-30
  • 打赏
  • 举报
回复
这是缺少应该有的库!需要库 oflog.lib ofstd.lib 因为dcmdata需要用到这些库,参见 https://www.google.com.hk/?gws_rd=ssl#newwindow=1&q=log4cplus::Logger::isEnabledFor(int)const&safe=strict
lvtingyang88 2013-05-30
  • 打赏
  • 举报
回复
能请教一下这个问题如何解决吗?我用的环境是win7 + QT 5.0.2,在QT下面我引用了DCMTk的库和头文件,当我编译的时候也是报 dcmdata.lib(dcuid.obj) : error LNK2019: 无法解析的外部符号 _WSACleanup@0,该符号在函数 "long __cdecl gethostid(void)" (?gethostid@@YAJXZ) 中被引用 oflog.lib(winsock.obj) : error LNK2001: 无法解析的外部符号 _WSACleanup@0 dcmdata.lib(dcuid.obj) : error LNK2019: 无法解析的外部符号 _gethostbyname@4,该符号在函数 "long __cdecl gethostid(void)" (?gethostid@@YAJXZ) 中被引用 dcmnet.lib(dulfsm.obj) : error LNK2001: 无法解析的外部符号 _gethostbyname@4 oflog.lib(winsock.obj) : error LNK2001: 无法解析的外部符号 _gethostbyname@4 dcmdata.lib(dcuid.obj) : error LNK2019: 无法解析的外部符号 _gethostname@8,该符号在函数 "long __cdecl gethostid(void)" (?gethostid@@YAJXZ) 中被引用 dcmnet.lib(dfindscu.obj) : error LNK2001: 无法解析的外部符号 _gethostname@8 oflog.lib(winsock.obj) : error LNK2001: 无法解析的外部符号 _gethostname@8 dcmdata.lib(dcuid.obj) : error LNK2019: 无法解析的外部符号 _WSAStartup@8,该符号在函数 "long __cdecl gethostid(void)" (?gethostid@@YAJXZ) 中被引用 oflog.lib(oflog.obj) : error LNK2001: 无法解析的外部符号 _WSAStartup@8 oflog.lib(winsock.obj) : error LNK2001: 无法解析的外部符号 _WSAStartup@8 这些问题一直很 困惑着我,不知道如何解决他能指点一下 或是能不能留一下你的QQ
蓝鹰 2012-09-03
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

log4cplus-1.0.3-rc9\msvc8目录下的vc样例你试过了么?
#define LOG4CPLUS_STATIC不用加也没什么影响。
链接库的顺序理应没有什么关系。
耐心些,多尝试尝试。
[/Quote]虽然没有用这个东西了,还是谢谢
xingfeng2510 2012-08-28
  • 打赏
  • 举报
回复
log4cplus-1.0.3-rc9\msvc8目录下的vc样例你试过了么?
#define LOG4CPLUS_STATIC不用加也没什么影响。
链接库的顺序理应没有什么关系。
耐心些,多尝试尝试。
mujiok2003 2012-08-28
  • 打赏
  • 举报
回复
下载源代码,自己编译(ms有vs2010的工程), 生合适的LIB文件即可
蓝鹰 2012-08-28
  • 打赏
  • 举报
回复
CRT都特别检察过,不知道链接库的顺序是否有关系
蓝鹰 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

可能在其他的配置环节出了问题,添加头文件包含路径了么?
我在自己的电脑上试过了,可以正常运行,只需保证log4cplusUD.dll放在项目目录下、log4cplusUD.lib加入到到导入库列表以及将log4clups文件夹include作为额外的包含路径。

试一试下面这个配置说明,log4cplus-1.0.3-rc9\msvc8文件夹下有vc样例,看一看这个样例是怎样做的就知道怎么……
[/Quote]

这些最基本的配置都做了,你说的预定义是指 #define LOG4CPLUS_STATIC 吗?
xingfeng2510 2012-08-28
  • 打赏
  • 举报
回复
可能在其他的配置环节出了问题,添加头文件包含路径了么?
我在自己的电脑上试过了,可以正常运行,只需保证log4cplusUD.dll放在项目目录下、log4cplusUD.lib加入到到导入库列表以及将log4clups文件夹include作为额外的包含路径。

试一试下面这个配置说明,log4cplus-1.0.3-rc9\msvc8文件夹下有vc样例,看一看这个样例是怎样做的就知道怎么回事了。

--------------------------------------------------------------------
一.下载
可从网站http://log4cplus.sourceforge.net上去下载 log4cplus 1.0.3 rc9,具体地址http://downloads.sourceforge.net/log4cplus/log4cplus-1.0.3-rc9.tar.bz2?use_mirror=nchc,同时附件也带有这个库。

二.配置环境
1. 将库解压到C:\log4cplus下面,使用VS2008打开.\msvc8\log4cplus.sln,编译log4cplus_static(Debug_Unicode+Release_Unicode),并将生成的Lib(log4cplusUS.lib+log4cplusUSD.lib)复制到.\Lib目录下。
2. 将.\Include和.\Lib分别添加到VS2008的搜索路径下。
3. 在我们的工程中,添加预定义 LOG4CPLUS_STATIC。
3. 只需要包含相应的头文件和链接相应的库就可以正常的使用log4cplus进行日志的管理了。
4.注意编译的库和使用的程序,使用的CRT方式的一致,如下所示:
蓝鹰 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

log4cplus库默认情况下在本机是不存在的,可以再sourceforge上面下载,
http://log4cplus.sourceforge.net/

Google一下“log4cplus的配置与使用”就知道如何使用该库了。
[/Quote]

我到网上下了,但是还是原来的问题,我把log4cplusUD.lib 添加进去了,而且是用相同的编译选项编译的
蓝鹰 2012-08-26
  • 打赏
  • 举报
回复
求围观
redleaves 2012-08-24
  • 打赏
  • 举报
回复
1>dcmdata.lib(vrscan.obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^说明是dcmdata.lib中的vrscan.obj有问题
error LNK2001: 无法解析的外部符号
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^问题是符号无法解析
"public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const "
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^符号的可读信息.可以看出是什么类什么函数等等
(?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^c++ name mangling后的符号名,也就是符号在目标文件中的真实名称
错误信息一目了然啊
连接时错误一般都很好办.比模板出错强多了.
xingfeng2510 2012-08-24
  • 打赏
  • 举报
回复
log4cplus库默认情况下在本机是不存在的,需要自己动手在sourceforge网站http://log4cplus.sourceforge.net/下载。

log4cplus的具体配置与使用Google一下就知道了。
xingfeng2510 2012-08-24
  • 打赏
  • 举报
回复
log4cplus库默认情况下在本机是不存在的,可以再sourceforge上面下载,
http://log4cplus.sourceforge.net/

Google一下“log4cplus的配置与使用”就知道如何使用该库了。
倾听花开雨落 2012-08-24
  • 打赏
  • 举报
回复
楼主,加我qq,1662406519,我也是刚学itk,有些问题可以交流一下
蓝鹰 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

摒弃log4cplus
用我这个?
C/C++ code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef WIN32
#include <windows.h>
#include <io.h>
#else
#include <unistd.h>
#include <sys/ti……
[/Quote]

为什么这里面有个main函数? 怎么用啊?
在我的电脑里都没有找到log4cplus相关的lib的影子
kllll1119 2012-08-24
  • 打赏
  • 举报
回复
比内存错误好多了
xunxun 2012-08-24
  • 打赏
  • 举报
回复
很明显写了log4cplus啊
赵4老师 2012-08-24
  • 打赏
  • 举报
回复
摒弃log4cplus
用我这个?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef WIN32
#include <windows.h>
#include <io.h>
#else
#include <unistd.h>
#include <sys/time.h>
#include <pthread.h>
#define CRITICAL_SECTION pthread_mutex_t
#define _vsnprintf vsnprintf
#endif
//Log{
#define MAXLOGSIZE 20000000
#define ARRSIZE(x) (sizeof(x)/sizeof(x[0]))
#include <time.h>
#include <sys/timeb.h>
#include <stdarg.h>
char logfilename1[]="MyLog1.log";
char logfilename2[]="MyLog2.log";
char logstr[16000];
char datestr[16];
char timestr[16];
char mss[4];
CRITICAL_SECTION cs_log;
FILE *flog;
#ifdef WIN32
void Lock(CRITICAL_SECTION *l) {
EnterCriticalSection(l);
}
void Unlock(CRITICAL_SECTION *l) {
LeaveCriticalSection(l);
}
#else
void Lock(CRITICAL_SECTION *l) {
pthread_mutex_lock(l);
}
void Unlock(CRITICAL_SECTION *l) {
pthread_mutex_unlock(l);
}
#endif
void LogV(const char *pszFmt,va_list argp) {
struct tm *now;
struct timeb tb;

if (NULL==pszFmt||0==pszFmt[0]) return;
if (-1==_vsnprintf(logstr,ARRSIZE(logstr),pszFmt,argp)) logstr[ARRSIZE(logstr)-1]=0;
ftime(&tb);
now=localtime(&tb.time);
sprintf(datestr,"%04d-%02d-%02d",now->tm_year+1900,now->tm_mon+1,now->tm_mday);
sprintf(timestr,"%02d:%02d:%02d",now->tm_hour ,now->tm_min ,now->tm_sec );
sprintf(mss,"%03d",tb.millitm);
printf("%s %s.%s %s",datestr,timestr,mss,logstr);
flog=fopen(logfilename1,"a");
if (NULL!=flog) {
fprintf(flog,"%s %s.%s %s",datestr,timestr,mss,logstr);
if (ftell(flog)>MAXLOGSIZE) {
fclose(flog);
if (rename(logfilename1,logfilename2)) {
remove(logfilename2);
rename(logfilename1,logfilename2);
}
flog=fopen(logfilename1,"a");
if (NULL==flog) return;
}
fclose(flog);
}
}
void Log(const char *pszFmt,...) {
va_list argp;

Lock(&cs_log);
va_start(argp,pszFmt);
LogV(pszFmt,argp);
va_end(argp);
Unlock(&cs_log);
}
//Log}
int main(int argc,char * argv[]) {
int i;
#ifdef WIN32
InitializeCriticalSection(&cs_log);
#else
pthread_mutex_init(&cs_log,NULL);
#endif
for (i=0;i<10000;i++) {
Log("This is a Log %04d from FILE:%s LINE:%d\n",i, __FILE__, __LINE__);
}
#ifdef WIN32
DeleteCriticalSection(&cs_log);
#else
pthread_mutex_destroy(&cs_log);
#endif
return 0;
}
一叶之舟 2012-08-24
  • 打赏
  • 举报
回复
很明显是log4cplus库
加载更多回复(1)
本系统提出了一套面向MRI全心脏分割任务的端到端深度学习解决方案,其核心创新在于将Swin Transformer作为编码器骨干网络,充分挖掘心脏MRI图像中的全局上下文信息与局部细节特征,同时引入4通道输入机制,在传统RGB三通道图像基础上额外拼接一个点提示编码通道,支持用户通过鼠标交互在图像上自由标注前景(心脏区域)与背景点,从而将先验空间信息显式地融入网络前向传播过程,实现基于稀疏标注引导的精准分割。在解码阶段,系统采用U型对称结构,通过逐步上采样与跳跃连接逐级恢复特征图分辨率,最终输出二值分割掩膜(前景/背景),有效区分心脏区域与其他组织。训练过程中,系统选用交叉熵损失函数,配合AdamW优化器与余弦退火学习率调度策略,确保模型在训练集和验证集上稳定收敛,并在每个epoch结束后自动计算全局像素准确率、平均交并比(mIoU)、平均Dice系数、平均精确率、平均召回率及平均F1分数等多项评估指标,全方位监控模型性能。系统内置了完整的训练日志保存、损失曲线与性能曲线绘制、学习率衰减可视化等功能模块,便于用户直观分析训练过程并调优超参数。在推理应用层面,系统封装了基于Tkinter框架的图形化交互界面,用户可上传任意MRI切片图像,通过鼠标左键/右键分别添加前景/背景点,点击“执行分割”按钮后即可实时生成叠加了红色半透明掩膜的分割结果图像,支持点集的增删与重置操作,交互响应灵敏,操作逻辑直观清晰。整体而言,本系统不仅实现了从多模态数据加载、交互式标注编码、基于Transformer的分割建模到图形化推理部署的全链路覆盖,更在算法层面通过点提示引导机制与Swin Transformer结构的高效结合,显著降低了对大规模标注数据的依赖,同时提升了模型对心脏边界模糊、形态变异及邻近组织干扰的鲁棒性,为心血管疾病的计算机辅助诊断、术前规划及定量分析提供了一种兼具精度与灵活性的智能
针对心脏MRI图像中边界模糊、器官形变复杂以及标注成本高昂等痛点,本研究构建了一套以Swin Transformer为编码基座、融合人机交互机制的轻量化分割系统。该方案跳出传统全自动分割的思维定式,转而采纳“模型推理+专家微调”的协同策略,在模型输入层开辟了一条额外的点提示通道,允许操作者通过鼠标标记少量前景或背景点,将这些位置信息与图像特征并行馈入网络,从而将抽象的空间先验转化为可微分的学习信号,使得分割结果能够灵活响应个体差异与局部歧义。编码端采用基于移位窗口注意力的Transformer结构,以分层递降的分辨率捕获全局感受野下的解剖结构关联,解码端则通过逐步上采样与跨层特征拼接恢复空间细节,最终输出逐像素的二分类概率图。训练数据来自心脏MRI多切片序列,每张样本不仅包含原始影像与对应金标准掩膜,还通过随机采样前景点的方式模拟真实交互场景,迫使模型学会如何从稀疏的点监督中推断完整器官轮廓。损失函数选用标准交叉熵,用以衡量预测概率与真实标签之间的分布差异,同时引入混淆矩阵模块对训练与验证阶段的像素精度、召回率、F1分数、Dice系数及平均交并比进行逐轮次追踪,所有评估曲线均自动落盘保存,便于横向对比不同超参数配置下的性能演变规律。在工具链末端,系统配套开发了一个基于Tkinter的事件驱动型图形界面,将模型推理、点标注、结果渲染与图像交互四个环节无缝串联。用户上传图像后,可通过左键与右键分别部署正负样本点,随后系统自动完成坐标缩放、通道拼接、前向传播与掩膜重采样,最终在原始影像上叠加半透明彩色蒙层,清晰勾勒出模型判定的心脏区域。整套代码逻辑紧密、模块边界清晰,既可作为医学影像分割领域的教学范例,亦可经过少量适配迁移至其他器官或模态的交互式标注任务中,具备良好的扩展潜力与实用价值。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧