VS 2015编译器无法看到C变量

时间:2016-01-15 10:56:02

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

我正在用MS Visual Studio 2015编写一个c ++项目。在我的项目中,我必须调用一些在C文件中声明和定义的变量。

如下所示,变量包含在extern" C"结构:

#if defined __cplusplus
        extern "C" {
#endif

GainType MYDLL_API BestCost;      /* Cost of the tour in BestTour */

int MYDLL_API *BestTour;  /* Table containing best tour found */

double MYDLL_API LowerBound;      /* Lower bound found by the ascent */

#if defined __cplusplus
        }
#endif

但是,编译器无法解析这三个变量。 我到处搜索过,我已经尝试了所有提议的解决方案,但它仍然无法运行。 我该如何解决?

感谢大家!

2 个答案:

答案 0 :(得分:3)

这看起来像c代码在DLL中

让编译器找到它。

  1. 需要为{C ++
  2. MYDLL_API定义为__declspec(dllimport)
  3. 需要链接.lib文件

答案 1 :(得分:3)

似乎符号来自DLL库。然后,您需要将DLL的导入库(* .lib)添加到与应用程序链接的库列表中。

在Visual Studio选项中,这可以在项目属性,链接器/输入/附加依赖项下完成(在那里添加lib名称)。

还要确保在链接器/常规/附加库目录中设置* .lib的路径。