解决外部符号错误

时间:2016-01-08 12:55:09

标签: c++

C ++编程新手我试图让一些开源软件运行,以便我可以在它上面构建。 我有3 * cpp模块。一个包含......

const double Qcf[6]= { 1.0, 448.831, 0.64632,0.02832, 28.317,  2.4466};

其他两个模块使用此常量并在其正文中包含对它的引用

extern double Qcf[];  

这些模块中的每一个都有一个方法/功能 即

之类的东西
void routine1()
{
double i;
i = 2 * Qcf[1];
} 

我已经构建了代码,它似乎已经编译(即* cpp转到 obj),但我得到2条错误消息。 LNK2001未解析的外部符号“双 Qcf”

每个错误都与每个* obj文件相关

(我还得到另一个 LNK1120两个未解析的外部错误,但我想如果我解决了LNK2001问题,这将是自我纠正的。)

有关如何纠正此问题的任何建议都需要提前了解。

1 个答案:

答案 0 :(得分:0)

Qcf在一个模块中定义为const double[],在另一个模块中声明为double[]。你也应该声明它为const。

(或std::array<double, 6>而不是C风格的数组,如果您的编译器支持C ++ 11)