相关疑难解决方法(0)

CMake:如果你需要指定CMAKE_MODULE_PATH,find_package()的用途是什么?

我正在尝试使用CMake实现跨平台构建系统.现在该软件有一些依赖性.我自己编译并将它们安装在我的系统上.

安装的一些示例文件:

-- Installing: /usr/local/share/SomeLib/SomeDir/somefile
-- Installing: /usr/local/share/SomeLib/SomeDir/someotherfile
-- Installing: /usr/local/lib/SomeLib/somesharedlibrary
-- Installing: /usr/local/lib/SomeLib/cmake/FindSomeLib.cmake
-- Installing: /usr/local/lib/SomeLib/cmake/HelperFile.cmake
Run Code Online (Sandbox Code Playgroud)

现在,CMake有一个find_package()打开Find*.cmake文件并在系统上的库之后搜索并定义一些变量等SomeLib_FOUND.

我的CMakeLists.txt包含这样的内容:

set(CMAKE_MODULE_PATH "/usr/local/lib/SomeLib/cmake/;${CMAKE_MODULE_PATH}")
find_package(SomeLib REQUIRED)
Run Code Online (Sandbox Code Playgroud)

第一个命令定义了CMake在搜索之后搜索的位置,Find*.cmake并且我添加SomeLibFindSomeLib.cmake可以找到的目录,因此find_package()按预期工作.

但这find_package()有点奇怪,因为存在的原因之一是远离非跨平台硬编码路径.

这通常是怎么做的?我应该将cmake/目录复制SomeLib到我的项目中并设置CMAKE_MODULE_PATH相对吗?

cmake

141
推荐指数
2
解决办法
13万
查看次数

找不到模块FindOpenCV.cmake(配置过程中出错)

CMakeLists.txtC++中编写了一个使用OpenCV库的项目.当我尝试使用cmake创建项目时,我遇到了下一个配置问题:

CMake Error at CMakeLists.txt:15 (find_package):
  Could not find module FindOpenCV.cmake or a configuration file for package
  OpenCV.

  Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
  directory containing a CMake configuration file for OpenCV.  The file will
  have one of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake
Run Code Online (Sandbox Code Playgroud)

事实是我有一个环境变量用于我在Visual Studio中使用的路径没有问题.如果我不包含OpenCV,那么我可以配置和生成没有问题,但我需要解决问题.我不明白为什么cmake找不到OpenCV路径或如何解决它.

我还使用了此链接中提到的建议: FindOpenCV.cmake

有人也有这个问题吗?

opencv cmake

52
推荐指数
6
解决办法
10万
查看次数

Clion和CMake消息

我刚开始使用Clion IDE.也许这是写在某个地方,但我没有在谷歌搜索中看到它.如果我在我的CMake脚本中放入一个message()调用,我可以在Clion中看到输出吗?这些消息调用是我知道如何调试我的CMake脚本的唯一方法.

cmake clion

14
推荐指数
2
解决办法
7536
查看次数

在Windows上使用OpenCV和Clion IDE

我实际上正在寻找一种方法来使用OpenBV与JetBrains的Clion创建应用程序.

我已经用Choco安装了OpenCV,所以我在C:\ opencv中拥有所有东西

这是我与Clion的项目

的CMakeLists.txt:

cmake_minimum_required(VERSION 3.3)
project(test)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories("C:\\opencv\\build\\include\\")

FIND_PACKAGE( OpenCV REQUIRED core highgui imgproc)
set(OpenCV_FOUND TRUE)

set(SOURCE_FILES main.cpp)
add_executable(prog ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

和main.cpp:

#include <opencv2/opencv.hpp>

int main() {

    cv::Mat img = cv::imread("./test.jpg", -1);
    cv::imshow("Mon image", img);
    cv::waitKey(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并且对构建的响应是:

undefined reference to `cv::imread(cv::String const&, int)'
Run Code Online (Sandbox Code Playgroud)

所有OpenCV函数的未定义错误

你知道为什么它不起作用吗?

windows opencv clion

7
推荐指数
1
解决办法
2万
查看次数

OpenCV CLion (Cmake) 链接问题 - cmake 报告一个奇怪的错误

由于保存我的 CMakeLists 和/或构建项目时出现奇怪的错误,我无法让我的 CLion 构建项目: Error:Found package configuration file: /usr/share/opencv/OpenCVConfig.cmake but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.

源文件

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
    Mat image;
    image = imread( "lena.jpg", 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的CMakeLists.txt cmake_minimum_required(VERSION 3.3) project(Test) find_package( OpenCV …

c++ opencv cmake clion

2
推荐指数
1
解决办法
3541
查看次数

标签 统计

cmake ×4

clion ×3

opencv ×3

c++ ×1

windows ×1