在完成CMake配置和生成后,使用CLion构建OpenCV时为什么会出错?

时间:2019-04-08 14:14:00

标签: c++ cmake clion

我在Clion cmake中发现总是添加-G "CodeBlocks - Unix Makefiles"参数。使用cmake ../

可以使camke的生成有所不同

如您所见,我没有在CMake选项中添加任何参数。但是CLion添加了-G“ CodeBlocks-Unix Makefiles”。

根据jetbrains。此功能将得到修复,但不知道何时。CLionCMake的默认生成器是CodeBlocks-Makefiles。

如果通过CLion构建OpenCV,您将最终发现CMake错误,如下所示。这是由-G "CodeBlocks - Unix Makefiles"

引起的
Problems were encountered while collecting compiler information:
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory

1 个答案:

答案 0 :(得分:0)

要回答您的问题:您不必在CLion中更改makefile生成器,而不必这样做。

让我解释一下原因:

如果仔细阅读输出,您将在所有错误消息之前看到以下内容:

-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/opencv/cmake-build-debug

这表明CMake项目的实际配置成功。此外,CLion使用许多目标填充“运行/调试配置”下拉列表。 CMake配置很好,您可以编码,编译和运行所有内容。如果CMake失败了,情况就不会如此。

但是,在CMake完成之后,CLion想要执行一些额外的魔术(我不知道这件事)。这就是所有错误消息的来源。

要摆脱它,必须在CMake配置对话框的CMake选项中添加以下标志:

-DENABLE_PRECOMPILED_HEADERS=OFF

顺便说一句:构建类型是通过“构建类型:”选项的下拉菜单定义的,无需在CMake选项中再次进行设置。


总结:您的问题是XY-Problem的典型情况。您想解决CLion给出的错误消息所指示的问题。但是,您不是"asking about your attempted solution rather than your actual problem."

,而是对此进行询问并在您的问题中提供了必需的信息。

我只是在您的答案帖中找到了缺失的信息,而不是问题所在的信息。因此,如果您可以将自己的帖子合并成一个全面的问题,那就太好了。

这绝不意味着粗鲁或冒犯。我只想给您一个提示,告诉您如何改进问题以防止投票不足或保持未回答状态。