我正在将大型项目从Linux移植到WinCE。目前面临链接错误LNK2019的问题。 我可以从错误中看出它是因为重载的静态函数没有定义,只是声明。 E.g:
template<bool taValue>
struct type
{
};
typedef type<true> MTrue;
typedef type<false> MFalse;
static int getData(int i, MTrue) { return 2; }
static int getData(int i, MFalse);
这只是一个代码示例,而不是确切的场景。
编译适用于Linux,但WinCE的链接时间正在下降。如果我在Linux中注释掉重载的未定义函数,那么我也可以在Linux中看到同样的链接错误集。
我不确定,为什么会发生这种情况? 在Linux的情况下,是否有任何编译器选项可以避免此链接错误? 注意:编译器gcc / g ++ 4.2.2和cmake版本3.2.2