CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法

这篇具有很好参考价值的文章主要介绍了CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

demo指路:https://github.com/EdVince/Stable-Diffusion-NCNN
Linux端使用cmake编译文件时,

cd x86/linux
mkdir -p build && cd build
cmake ..
make -j$(nproc)

执行cmake ..命令,报错:

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

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

    ncnnConfig.cmake
    ncnn-config.cmake

  Add the installation prefix of "ncnn" to CMAKE_PREFIX_PATH or set
  "ncnn_DIR" to a directory containing one of the above files.  If "ncnn"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/home/gaoyi/ldm-ncnn/Stable-Diffusion-NCNN/x86/linux/CMakeFiles/CMakeOutput.log".

问题原因

拉取ncnn的代码库(包括submodule)后没有build and Install,所以cmake时找不到对应的包,只需要让它找到对应的包即可,分为2步:

  1. 生成对应的cmake文件(ncnnConfig.cmakencnn-config.cmake
  2. 设置环境变量(CMAKE_PREFIX_PATH或者ncnn_DIR

解决方法

  1. build and Install ncnn

需要执行以下命令:

cd ncnn
mkdir -p build
cd build
cmake ..

cmake之后继续在build目录下,执行:

make install

发现弹出的信息中有:
CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法
这其中的ncnnConfig.cmake、ncnn.cmake就是我们需要找的包,找到上一级目录,右键复制路径

  1. 设置环境变量
export ncnn_DIR=/home/gaoyi/ldm-ncnn/Stable-Diffusion-NCNN/ncnn/build/install/lib/cmake/ncnn

这个环境变量就是上一步复制的路径

  1. 重新运行cmake
cmake ..

看到:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/gaoyi/ldm-ncnn/Stable-Diffusion-NCNN/x86/linux

成功!文章来源地址https://www.toymoban.com/news/detail-511587.html

到了这里,关于CMake Error at CMakeLists.txt: (FIND_PACKAGE)找不到ncnn包的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ORB-SLAM3】CMake Error at CMakeLists.txt:37 (message): OpenCV > 2.4.3 not found.

    ZED2相机配置使用ORB-SLAM3,出现关于opencv的报错 CMake Error at CMakeLists.txt:37 (message): OpenCV 2.4.3 not found. 由于我的opencv是4版本的,而Cmakelist里面第33行找的是find_package(OpenCV 3.0 QUIET)也就是3版本的,所以找不到,因此而报错 将 find_package(OpenCV 3.0 QUIET) 改为 find_package(OpenCV 4.0 QUIET) 即可

    2024年02月07日
    浏览(43)
  • CMake Error at CMakeLists.txt:1:Parse error.Expected a command name, got unquoted argument with text

    1.CMake升级       通过查阅CMake升级博客,个人觉得是这个问题概率较小,也可以找编译成功的人,通过下列命令查看版本号对比来判断是否与这有关。     如果没有多余空格仍然报错,可在终端使用vim打开文件检查是否有多余的代码。ubantu安装vim的命令如下: vim打开CMakeL

    2024年02月15日
    浏览(46)
  • cmake find_package、引用GDAL 初步学习

    上次的源码的CMakeLists.txt文件里有 find_package(GDAL REQUIRED) 这句; 从字面意思看此源码需要GDAL库; 查了一下,find_package 指令的基本功能是查找第三方库,并返回其细节;   我当前GDAL安装在D:GDAL; 先把它的CMakeLists.txt重命名为别的,不使用; 新建一个CMakeLists.txt,里面有三句

    2024年02月06日
    浏览(35)
  • CMake学习笔记:搜索第三方库及头文件路径 find_package()命令

    在实际开发过程中,经常不可避免的会使用到第三方开源库,这些开源库可能是通过apt-get install 命令自动安装到系统目录,也可能是由我们自己下载库的源码然后通过编译安装到指定目录的。 不管哪种方式安装的库文件,如果我们需要在自己的项目中使用这些库,首先面临

    2024年02月06日
    浏览(104)
  • cmake中的find_package(xxx REQUIRED)与set(CMAKE_PREFIX_PATH xxx)

    目录 1 find_package(xxx REQUIRED) 2 set(CMAKE_PREFIX_PATH xxx) find_package(xxx REQUIRED)的作用就是寻找包,比如我们某个工程编译的时候需要用到opencv,那我们的CMakeList.txt中需要有find_package(OpenCV REQUIRED),他的原理简单来说就是去寻找OpenCVConfig.cmake文件,然后在OpenCVConfig.cmake文件中会指定

    2024年02月16日
    浏览(69)
  • CMake语法-find_package-查找库-pkg_check_modules-外部库信息-find_path-查找路径-find_library-查找库

    find_package 是 CMake 中的一个命令,用于在构建系统中查找和引入第三方库。当你在项目中使用了某个外部库(如 Boost、Eigen、OpenCV 等)时,可以利用 find_package 命令来查找并配置这些库的路径和其他相关设置。 基本语法如下: package_name : 要查找的包的名称。 version : (可选)

    2024年04月09日
    浏览(66)
  • 解决执行find_package(PCL, ...时遇到CMakeFindDependencyMacro.cmake里find_dependency(Qt5WebKit 5.212.0 EXACT报错

    写的CMakeLists.txt里有这么一句: find_package(PCL 1.8 REQUIRED COMPONENTS common io visualization) 在执行cmake 命令时报下面的错: CMake Error at /usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package):   Found package configuration file:     /root/anaconda3/lib/cmake/Qt5WebKit/Qt5WebKitConfig.cmake   but it set Qt5

    2024年01月24日
    浏览(41)
  • CMake Error: The source directory “XXX“ does not appear to contain CMakeLists.txt

    正常CMakeLists.txt文件是在项目根目录下,而我们在项目的build文件夹中进行cmake,导致找不到文件,解决方法,命令行后加两个点表示上级目录,关键就是这两个点:

    2024年02月04日
    浏览(55)
  • cmake中多级CMakeLists.txt调用

      在c/c++工程开发中,往往会涉及多级CMakeLists.txt的调用,并且调用方式错综复杂,主要有以下两种方式: 子目录中的CMakeLists.txt 独立生成目标 ,不作为主目标生成过程主的依赖存在,与主目标并无任何关系。 子目录中的CMakeLists.txt 作为主目标的依赖源文件 ,不单独生成

    2024年02月02日
    浏览(39)
  • 20230822 Windows上使用find_package引入OpenCV报错

    打开Cmake项目时,find_package 报错: 大概率原项目是在 Linux 上开发的,Linux 上安装的 OpenCV 默认添加到了系统环境里,所以可以直接使用,但是 Windows 上的系统环境变量里没有OpenCV导致的 有两种解决方案 1. 将 OpenCV 添加到系统环境变量中 将 OpenCV 添加到系统环境变量里,这样

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包