使用cmake进行编译,使用macport安装依赖项

pzo*_*pzo 7 opencv compilation cmake

我正在尝试构建依赖于OpenCV的项目.我使用macports安装了Opencv,当我尝试构建项目时,cmake提供了以下输出:

CMake Error at CMakeLists.txt:47 (FIND_PACKAGE):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.
Run Code Online (Sandbox Code Playgroud)

我搜索了一下这个问题,并添加了以下环境.变量到我的$HOME/.profile文件

export DYLD_LIBRARY_PATH=/opt/local/lib:$DYLD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=/opt/local
Run Code Online (Sandbox Code Playgroud)

没有成功.我检查了所有opencv文件都在/ opt/local/lib和/ opt/local/include/opencv目录中.还有 OpenCVConfig.cmake以下路径:

/opt/local/lib/cmake/OpenCVConfig.cmake

如何让cmake知道opencv的安装路径?以前我使用cmake自己构建OpenCV并安装到/ usr/local然后它没有任何其他修复工作正常.但是我对ffmpeg有一些问题,现在我转而使用macports.

alh*_*amo 9

另一个适用于我的选项是在cmake opencv目录中设置env值OpenCV_DIR:

export OpenCV_DIR=/opt/local/lib/cmake/
Run Code Online (Sandbox Code Playgroud)


kar*_*lip 1

macports传统上安装 OpenCV,而/opt/local/不是标准的/usr/local/.

您的问题的解决方案位于:

将“OpenCV”的安装前缀添加到 CMAKE_PREFIX_PATH 或将“OpenCV_DIR”设置为包含上述文件之一的目录。

在命令行中构建项目时,请确保执行:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/local/lib
Run Code Online (Sandbox Code Playgroud)

CMAKE_PREFIX_PATH然后为 cmake设置标志:

cmake -D CMAKE_PREFIX_PATH=/opt/local ../
Run Code Online (Sandbox Code Playgroud)