error C2143: syntax error : missing ';' before ''template<''
我收到此错误 error C2143: syntax error : missing ';' before ''template<''
尝试构建项目时。所以如果有人可以请告诉我如何解决这个错误。
- 提示:要解决此类问题,请将其减少到仍会出现相同问题的最小情况。那么它可能会更明显。
-
贴贴提示:贴"error on line 90"时,实际注明你代码的哪一行是第90行。
-
我猜它应该是 template <typename Scalar> PCL_EXPORTS bool 。然而,这仍然很可疑,因为模板函数必须在实例化时完全可见。这是来自 PCL 的实际文件还是有人在模板位中编辑过?
-
@MattMcNabb 感谢马特的评论,我已经修改了问题以指定错误行。我会尝试你的建议并让你知道。我不确定您要问的是哪个模板?如果我的问题看起来微不足道,我很抱歉。再次感谢马特
-
@MattMcNabb 谢谢马特!!!这做到了。因此,如果您可以将其发布为接受它的答案。再次感谢
-
嗯 :) ,这很奇怪!因为执行您的建议消除了这些错误,但出现了其他链接错误。我不确定他们是否是因为那个修改?
-
最好从所有模板中删除 PCL_EXPORTS。无论如何您都无法导出模板,它不存在于编译的库中,仅存在于标题中。 (您可以导出模板特化)。这里的另一个问题是一些函数模板没有主体。请参阅stackoverflow.com/questions/495021/…
-
以目前的形式,从问题中删除代码,这篇文章不太可能帮助未来的读者。
与
的行
1
| PCL_EXPORTS bool template <typename Scalar> |
应该是
1
| template <typename Scalar> PCL_EXPORTS bool |
可能 PCL_EXPORTS 是 __declspec(dllexport) 并且通常这些东西必须在 template<...>.
之后
我检查了这个模板并没有出现在最新的 PCL 的新下载中,所以我猜它是某人制作的一个分支,它依赖于他们使用的任何编译器的属性。
一般来说,在函数模板上执行 dllexport 是一团糟。但是既然你说这个改变似乎可以解决它,也许蠕虫现在还留在罐子里!
- 1 但是从上面出现的其他链接错误的评论来看,蠕虫似乎没有在罐子里停留太久:)