链接器是否识别名称空间别名?

时间:2015-12-11 14:30:58

标签: c++ visual-studio boost linker

我正在使用vs2008在Windows上编译程序,我收到链接器错误LNK2019,我的目标文件有一个未解析的符号

func(boost::shared_ptr<Type> x)

我链接的库A应该定义这个符号,但 dumpbin 显示定义的符号是

func(boost_1_53_0::shared_ptr<Type> x)

我认为boost库使用bcp来增强boost_1_53_0的别名,但链接器是否知道命名空间别名?

如果没有,这个版本在哪里出错了?

2 个答案:

答案 0 :(得分:1)

我认为答案是:不,链接器不关心命名空间别名,所有符号都应该统一,这里的问题是库A没有使用boost 1.53正确构建。

答案 1 :(得分:0)

不,这不是问题。我们能看到你的代码吗?可能你需要包括标题。它看起来像转发,但shared_ptr是一个模板类。所以转发不是一个好主意