我有一个奇怪的错误,整天困扰着我。我有一个我编译的库函数。我静态链接库以在单独的控制台应用程序中测试它,一切都构建并正常工作。它只是一个名为sqrtval的简单sqrt函数。但是,当我将这个库包含在一个更大的图形项目中时,我会遇到链接器错误。我在控制台应用程序(有效)和图形主应用程序(不起作用)中设置了相应的库目录和附加依赖项设置。错误如下。
1
Microsoft(R)Windows(R)资源编译器版本6.1.6723.1 1>版权所有(C)Microsoft Corporation。 版权所有。 1个GT;链接... 1> MainAppWindow.obj:错误LNK2019: 未解决的外部符号“双重 __cdecl sqrtval(double)“(?sqrtval @@ YANN @ Z)引用于 功能“公共:虚拟空虚 __thiscall MainComponent :: sliderValueChanged(class juce :: Slider *)“ (?sliderValueChanged @ MainComponent @@ UAEXPAVSlider @ JUCE @@@ Z) 1> .... \ bin \ Debug \ tutorial.exe:致命 错误LNK1120:1个未解析的外部
答案 0 :(得分:1)
链接器命令行是什么样的?您的库是否在GUI应用程序的链接器命令中列出?
答案 1 :(得分:1)
如果您的库是用纯C编写的,则必须将sqrtval
声明为:
extern "C" double sqrtval(double);