首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Boost文件系统库中未解析的外部符号(错误LNK2019)

Boost文件系统库中未解析的外部符号(错误LNK2019)
EN

Stack Overflow用户
提问于 2016-03-24 22:32:51
回答 1查看 3.8K关注 0票数 2

我试图调试一个链接错误LNK2019:未解决的外部符号。为了做到这一点,我试图列出库中所有应该包含该符号的符号。不过,我有两个问题:

( 1)首先,我不明白如何用这种形式来读懂恶魔的符号:

代码语言:javascript
运行
复制
type __cdecl <SYMBOL_NAME> (<X>)

具体来说,我想知道X的含义是什么,它的重要性是什么?另外,交换SYMBOL_NAMEX是否会导致链接错误?

例如,下面是库中符号的一个(模糊的)定义:

代码语言:javascript
运行
复制
void __cdecl boost::filesystem::path_traits::convert(char const * __ptr64,char const * __ptr64,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __ptr64,class std::codecvt<wchar_t,char,int> const & __ptr64) (void __cdecl boost::filesystem::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &))

以下是链接错误:

代码语言:javascript
运行
复制
error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl boost::filesystem3::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &)" (__imp_void __cdecl boost::filesystem3::path_traits::convert(char const * __ptr64,char const * __ptr64,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __ptr64,class std::codecvt<wchar_t,char,int> const & __ptr64) referenced in function "public: __cdecl boost::filesystem3::path::path<char const [4]>(char const (&)[4],void *)" (??$?0$$BY03$$CBD@path@filesystem3@boost@@QEAA@AEAY03$$CBDPEAX@Z)

您可以看到,未解析的符号和现有的符号交换了它们的SYMBOL_NAMEX

( 2)有没有人对如何解决上述错误有任何想法?

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-25 04:20:51

似乎在链接所针对的boost dll与正在编译的boost头文件之间存在一些不匹配。也就是说,您的头文件定义了一个filesystem3命名空间,其中在dll中没有符号。

根据Boost.FileSystem文档,最有可能的情况是您的头来自boost版本1.46或1.47,其中文件系统v2和v3都受支持,但是v3是默认的,而dll用于boost 1.48或更高版本,此时v2不再包含,v3是默认的(没有专用的filesystem3名称空间)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36211108

复制
相关文章

相似问题

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