MSVC2019静态库中缺少符号名称

问题描述 投票:0回答:1

我是C ++新手,如果有人可以,请帮助我!

我制作了一个很好的二进制bigint对象。我将其编译为静态库,并尝试将其包含到另一个程序中,但是它失败,并显示如下错误:

combinations.obj ||错误LNK2019:未解决的外部符号“ public:静态void __cdecl BinBigInt :: bifactorial(class BinBigInt const&,class BinBigInt&)”](?bifactorial @ BinBigInt @@ SAXAEBV1 @ AEAV1 @@ Z)函数“ unsigned __int64 __cdecl combi :: nonrepCombination(char,char,class std :: basic_string,class std :: allocator>)”(?? $ nonrepCombination @ D @ combi @@ YA_KDDV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@@ Z)|

如果我将两个代码粘贴在一起,那么一切都很好,因此代码似乎还可以。

我阅读了很多有关LNK2019错误的主题,并检查了编译器设置以及Release vs. Debug版本匹配等,但无济于事。

[最后,我用MS dumpbin手动检查了.lib文件中的符号,就像在某些主题中猜测的那样,以检查名称处理问题,但是我发现很多(9)函数名称和所有(7)内部定义的运算符确实没有.lib文件包含的内容。 (编译器仅弹出5个未解决的外部符号错误,这些是我在尝试执行的文件中真正尝试过的那些。)]] >>

这似乎不只是一个名称处理问题,我绝对没有用dumpbin找到那些符号名称。

虽然在对象内部定义的许多其他函数以及在对象之外定义的运算符(如Comparisson,按位等)都包含在.lib文件中。

我用过的:dumpbin / symbols binbigint.lib | findstr“函数名”

有很多版本可以检查它们。

[我将Code :: Blocks与MSVC2019主机一起使用,并且都针对x64。

有人猜出该库不包含某些符号会引起什么?

((库代码大约3.000行,所以我没有在这里复制...)

我是C ++新手,如果有人可以,请帮助我!我已经制作了一个可以正常工作的二进制bigint对象。我将其编译为静态库,并尝试将其包含到另一个程序中,但是它失败,并显示...

c++ hyperlink symbols lnk2019 missing-symbols
1个回答
0
投票

嗯。我发现了问题...

那是我...:(

© www.soinside.com 2019 - 2024. All rights reserved.