关于 c :error C2143: syntax error : missing ‘;’在”模板<”之前 | 珊瑚贝

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 但是从上面出现的其他链接错误的评论来看,蠕虫似乎没有在罐子里停留太久:)


来源:https://www.codenong.com/24730786/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?