error LNK2019 无法解析的外部符号 vs2005
2011-03-22 14:01
986 查看
这两天在写一个进程管理器,用到了Psapi.h中的一些进程函数。我将Psapi.h包含到源代码中,但链接时出现了4个LNK2019错误,都是Psapi.h中的函数引起的无法解析的外部符号。
错误 2 error LNK2019: 无法解析的外部符号 _GetModuleFileNameExW@16,该符号在函数 "public: class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > __thiscall CSystemMangerDlg::GetProcessPath(unsigned long)" (?GetProcessPath@CSystemMangerDlg@@QAE?***?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@K@Z) 中被引用 SystemMangerDlg.obj
因为编译通过了,所以应该不是缺少Psapi.h的原因。我就上msdn2005查了LNK2019,不过里面列举的情况也没有和我类似。到网上搜,找了很久也没有和我类似的情况。后来看到一文章说是缺少附加依赖项。只要添加上附加依赖项,问题就解决了。添加附加依赖项的方法有:
方法 1:在包含头文件Psapi.h的同时,加上一行代码#pragma comment(lib,”psapi.lib”)
方法 2:[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”
虽然问题解决了,不过好像我还是不大理解依赖项这个东东!网上说的也很少。大概就是这个意思
一般大的工程软件都放在一个解决方案里面,分了好多模块(都是以工程方式组织在一起,或dll,或lib)。这样也是为了保证工程的同步开发的方便。
工程之间的链接可以动态链接:使用 LoadLibrary装入库,也可以静态链接,在工程配置中添加附加依赖库,或者在代码中使用 #pragma comment(lib,"xxx.lib);在Project->dependencies 中设置,主要是为了保证系统编译时候的顺序,既先编译无依赖项的项目,在编译其父依赖的项目。跟静态链接的效果是一样的。
转自:http://blog.csdn.net/lingdxuyan/archive/2009/07/29/4389634.aspx
错误 2 error LNK2019: 无法解析的外部符号 _GetModuleFileNameExW@16,该符号在函数 "public: class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > __thiscall CSystemMangerDlg::GetProcessPath(unsigned long)" (?GetProcessPath@CSystemMangerDlg@@QAE?***?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@K@Z) 中被引用 SystemMangerDlg.obj
因为编译通过了,所以应该不是缺少Psapi.h的原因。我就上msdn2005查了LNK2019,不过里面列举的情况也没有和我类似。到网上搜,找了很久也没有和我类似的情况。后来看到一文章说是缺少附加依赖项。只要添加上附加依赖项,问题就解决了。添加附加依赖项的方法有:
方法 1:在包含头文件Psapi.h的同时,加上一行代码#pragma comment(lib,”psapi.lib”)
方法 2:[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”
虽然问题解决了,不过好像我还是不大理解依赖项这个东东!网上说的也很少。大概就是这个意思
一般大的工程软件都放在一个解决方案里面,分了好多模块(都是以工程方式组织在一起,或dll,或lib)。这样也是为了保证工程的同步开发的方便。
工程之间的链接可以动态链接:使用 LoadLibrary装入库,也可以静态链接,在工程配置中添加附加依赖库,或者在代码中使用 #pragma comment(lib,"xxx.lib);在Project->dependencies 中设置,主要是为了保证系统编译时候的顺序,既先编译无依赖项的项目,在编译其父依赖的项目。跟静态链接的效果是一样的。
转自:http://blog.csdn.net/lingdxuyan/archive/2009/07/29/4389634.aspx
相关文章推荐
- error LNK2019 无法解析的外部符号 vs2005
- VS2005使用WTL出现 “error LNK2019: 无法解析的外部符号_main”的解决方法
- error LNK2019: 无法解析的外部符号 "public: class boost::asio::basic_stream_socket
- error LNK2019: 无法解析的外部符号_imp__MessageBoxA@16,该符号在函数 _WinMain@16 中被引用
- error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW
- error LNK2019无法解析的外部符号解决方案 && error LNK1120: 1 个无法解析的外部命令
- error LNK2019: 无法解析的外部符号 ***,该符号在函数 "***"中被引用 || 错误:无法打开导入的***.lib 文件
- error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4该符号在函数_WinMain@16 中被引用
- <转>关于 error LNK2019:无法解析的外部符号 ,该符号在函数**中被引用的思考
- 模板类 error LNK2019: 无法解析的外部符号
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...
- error LNK2019: 无法解析的外部符号 (解决方法)
- VC++常见错误原因解析--error LNK2019: 无法解析的外部符号 "public: void __thiscall
- error LNK2019,error LNK2001:无法解析的外部符号
- 为什么C++编译器不能支持对模板的分离式编译--error LNK2019: 无法解析的外部符号
- error LNK2019: 无法解析的外部符号
- error LNK2019(无法解析的外部符号)
- error LNK2019(无法解析的外部符号)
- 本来运行正确的程序,改成unicode就不行了 error LNK2019: 无法解析的外部符号 _WinMain@16
- error LNK2019 无法解析的外部符号 __imp__accept@12