【发布时间】:2017-09-03 13:41:05
【问题描述】:
所以我一直想学习 C++,我有 CLion 的学生许可证,并且熟悉公司的其他软件,所以如果可能的话我想使用它。使用 MSYS2 似乎是一种轻松管理库的好方法,因为每当我尝试使用 C++ 时,这都会变得很糟糕。
MSYS2 看起来足够直观,我设法安装了 OpenCV 库作为测试。但是,我现在完全不知道如何将它与 CLion 联系起来。
我一直在阅读有关 CMake 文件的内容,我认为这应该是我的:
cmake_minimum_required(VERSION 3.7)
project(letsee)
set(CMAKE_CXX_STANDARD 11)
find_package (OpenCV REQUIRED)
set(SOURCE_FILES main.cpp)
add_executable(letsee ${SOURCE_FILES})
target_link_libraries( letsee ${OpenCV_LIBS} )
然而,最后一行应该链接为一个环境变量。我知道 MSYS2 应该以某种方式处理它,或者我应该创建自己的 Windows 环境变量?无论哪种方式,我什至不确定我会在哪里链接这样的变量。我对这一点感到非常困惑。没有人能用一种 40 年历史的语言在 Windows 中创建一种直观的方式来处理这个问题。
【问题讨论】:
-
OpenCV_LIBS是一个 CMake 变量,应该由find_package设置。可能 CLion 没有以“正确的方式”执行关于 msys2 的 CMake 配置,因此它找不到 OpenCV 包。 -
“已安装 MSYS”库是什么意思?您是否有机会通过执行类似“configure & make & make install”的顺序来安装它们?您关于“MSYS 是一种轻松管理库的好方法”的说法非常令人困惑,因为 MSYS 一直恰恰相反。我不确定 clion、cmake 和 msys 是如何集成在一起的,但总的来说,手动管理所有库(可能通过将它们并排保存在某种“工作区”文件夹中)并依靠尽可能少地安装和环境变量。
-
MSYS2 允许您使用 pacman 命令从存储库安装库。我运行了 pacman -S 库名称,它运行并安装了。
-
您的构建是否与 MSYS2 提供的 MinGW shell 中的
cmakecommand-line 接口一起工作?如果没有,最好先调试一下。