静态库在控制台中工作但不在GUI应用程序中工作 - 很奇怪

时间:2010-10-06 21:43:14

标签: c++ visual-studio linker-errors

我有一个奇怪的错误,整天困扰着我。我有一个我编译的库函数。我静态链接库以在单独的控制台应用程序中测试它,一切都构建并正常工作。它只是一个名为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个未解析的外部

  

2 个答案:

答案 0 :(得分:1)

链接器命令行是什么样的?您的库是否在GUI应用程序的链接器命令中列出?

答案 1 :(得分:1)

如果您的库是用纯C编写的,则必须将sqrtval声明为:

extern "C" double sqrtval(double);