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恶心多了,根本不知道是缺了什么库。
...全文
1418 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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)

65,187

社区成员

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

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