首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

子目录中的CMake文件无法访问外部库

可能是因为CMake在搜索库文件时没有正确配置路径。要解决这个问题,可以采取以下步骤:

  1. 确保外部库已经正确安装并位于系统中。可以通过在终端中运行sudo apt-get install <library-name>(适用于Ubuntu)或使用其他适合你的操作系统的包管理器来安装库。
  2. 在子目录的CMakeLists.txt文件中,添加以下代码来指定库文件的路径:
代码语言:txt
复制
link_directories(/path/to/library)

其中/path/to/library是外部库所在的路径。如果库文件位于子目录中,可以使用相对路径。

  1. 在子目录的CMakeLists.txt文件中,使用target_link_libraries命令将库文件链接到你的项目中。例如:
代码语言:txt
复制
target_link_libraries(your_target_name library_name)

其中your_target_name是你的项目名称,library_name是你要链接的库的名称。

  1. 如果库文件是动态链接库(.so文件),还需要确保系统能够找到它们。可以将库文件路径添加到LD_LIBRARY_PATH环境变量中,或者将库文件复制到系统默认的库文件搜索路径中(如/usr/lib)。
  2. 如果仍然无法访问外部库,可以尝试重新生成CMake缓存文件。可以通过删除build目录并重新运行CMake来实现。

总结起来,解决子目录中的CMake文件无法访问外部库的问题,需要正确配置库文件的路径,并将其链接到项目中。确保库文件已正确安装,并检查系统的库文件搜索路径。如果问题仍然存在,可以尝试重新生成CMake缓存文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android OpenCV】Visual Studio 创建支持 OpenCV CMake 工程 ③ ( CMake 工程配置 OpenCV 文件 | 拷贝 OpenCV 函数文件 )

文章目录 一、CMake 工程配置 OpenCV 文件 二、拷贝 OpenCV 文件 三、测试 OpenCV 博客源码下载地址 : https://download.csdn.net/download.../han1202012/87358942 一、CMake 工程配置 OpenCV 文件 ---- 在上一篇博客 【Android OpenCV】Visual Studio 创建支持 OpenCV ...CMake 工程 ② ( VS 创建 CMake 工程 | CMake 工程配置 OpenCV 头文件 ) 在 Visual Studio 2019 环境下 CMake 工程配置了 OpenCV...头文件搜索路径 ; # CMakeList.txt: OpenCV_Demo CMake 项目,在此处包括源代码并定义 # 项目特定逻辑。...动态文件拷贝到 系统 , 下图中矩形框内就是要拷贝文件 ; 编译项目 , 发现编译文件被拷贝到了 Y:/002_WorkSpace/002_VS/OpenCV_Demo/OpenCV_Demo

1.1K20

【Android OpenCV】Visual Studio 创建支持 OpenCV CMake 工程 ② ( VS 创建 CMake 工程 | CMake 工程配置 OpenCV 头文件 )

文章目录 一、创建 CMake 工程 二、在 Visual Studio CMake 项目中配置 OpenCV 1、CMakeLists.txt 配置文件说明 2、OpenCV 头文件配置..., 项目位置 , 解决方案名称 ; 创建完毕 CMake 项目如下 : 运行解决方案 , 项目运行成功 ; 二、在 Visual Studio CMake 项目中配置 OpenCV -...--- 1、CMakeLists.txt 配置文件说明 在 Visual Studio CMake 项目中配置 OpenCV , 主要是在 CMakeLists.txt 中进行配置 , 该配置文件在源码目录...2、OpenCV 头文件配置 在上一篇博客 【Android OpenCV】Visual Studio 创建支持 OpenCV CMake 工程 ① ( 下载 OpenCV | Windows...安装 OpenCV ) , 在 Windows 平台 Y:\001_DevelopTools\032_OpenCV\opencv 目录 , 安装了 OpenCV , 其头文件在如下两个目录

2.2K20
  • CMake教程】(四)CMake 配置生成lib或者so文件

    但我们又不能直接提供源码,所以我们可以提供一个文件(静态或者动态),配置接口文件可以在不提供源代码情况下给他人提供算法模块功能。...add_subdirectory(mathlib) # 列出mathlib所有项目,并添加到外部变量EXTRA_LIBS list(APPEND EXTRA_LIBS mathlib...,该命令声明文件 add_library(mathlib mathlib.cpp) 为了将cmake变量自动传递到程序,在TutorialConfig.h.in添加#cmakedefine USE_MYMATH...:在cmake定义USE_MYMATH时候在程序才会编译该命令块。...... ...) (4)使用CMake进行编译 CMake在生成文件过程中会生成很多中间缓存文件,为了使项目更简洁,文件路径更清楚,一般会在项目的root目录下建立一个文件夹,用于存储CMake

    11.9K30

    linux中统计目录文件子目录

    使用ls和grep命令配合 统计当前目录下文件个数,不包括目录 > ls -l | grep "^-" | wc -l 统计文件夹下文件个数,包括子文件 > ls -lR | grep "^-" |...wc -l 9188 统计文件夹下目录个数,包括子目录 > ls -lR | grep "^d" | wc -l 540 使用find和wc 统计当前目录下所有的普通文件,包含隐藏文件,不包含子目录文件...> find /etc -maxdepth 1 -type f | wc -l 统计目录文件数量,包含隐藏文件,包含子目录文件 > find /etc -type f | wc -l 统计当前目录子目录数...,包含隐藏目录,不包含子目录目录 > find /etc -maxdepth 1 -type d | wc -l 统计当前目录子目录数,包含隐藏目录,包含子目录目录 > find /etc...linux15个基本ls命令示例 Linux之ls命令 linux35个find案例 linux中计算行数,字数,字符数10个wc命令示例

    3.2K20

    QtCreator里添加外部第三、头文件路径方法(.pro文件)

    一、前言 在项目开发过程,经常需要用到第三方,需要在QtCreator工程里指定第三路径、头文件路径、引用名称等等;并且可能还需要编写通用工程针对不同编译器类型,位数选择不同,针对不同操作系统环境选择不同...下面就介绍常用添加、头文件方法,以libvlc、ffmpeg、opencv等常用第三方作为示例,编译器分别选择VS2017(32位)、MinGW(32位)进行测试。...二、添加第三方与头文件 下面的例子里,第三方、头文件都放在工程目录下,代码里路径直接用$$PWD取当前路径,再接目录路径。.../ \ 2.1 引用libvlc示例 MSVC、MinGW编译器都可使用 在编译完成之后,需要把用到动态.dll文件拷贝到可执行文件exe同级目录下才能正常运行。...代码里引用libvlc需要包含文件: #include libvlc测试代码: 打印版本 qDebug()<<"libvlc版本:"<<libvlc_get_version

    8.2K11

    CMake学习笔记合集

    内部构建和外部构建 上述例子就是内部构建,他生产临时文件特别多,不方便清理 外部构建,就会把生成临时文件放在build目录下,不会对源文件有任何影响强烈使用外部构建方式 外部构建方式举例 //例子目录...二进制 将构建后目标文件放入构建目录 bin 子目录 将 doc 目录 内容以及 COPYRIGHT/README 安装到/usr/share/doc/cmake/ 将目标文件放入构建目录 bin...静态在编译时会直接整合到目标程序,编译成功可执行文件可独立运行 动态在编译时不会放到连接目标程序,即可执行文件无法单独运行。...安装共享和头文件 本例我们将 hello 共享安装到/lib目录, 将 hello.h 安装到/include/hello 目录 //文件放到该目录下 INSTALL(FILES hello.h...使用外部共享和头文件 准备工作,新建一个目录来使用外部共享和头文件 [root@MiWiFi-R4CM-srv cmake3]# tree . ├── build ├── CMakeLists.txt

    2.2K20

    CMake学习笔记

    外部构建,就会把生成临时文件放在build目录下,不会对源文件有任何影响强烈使用外部构建方式 外部构建方式举例 //例子目录,CMakeLists.txt和上面例子一致 [root@localhost...二进制 将构建后目标文件放入构建目录 bin 子目录 将 doc 目录 内容以及 COPYRIGHT/README 安装到/usr/share/doc/cmake/ 将目标文件放入构建目录 bin...静态在编译时会直接整合到目标程序,编译成功可执行文件可独立运行 动态在编译时不会放到连接目标程序,即可执行文件无法单独运行。...安装共享和头文件 本例我们将 hello 共享安装到/lib目录, 将 hello.h 安装到/include/hello 目录 //文件放到该目录下 INSTALL(FILES hello.h...使用外部共享和头文件 准备工作,新建一个目录来使用外部共享和头文件 [root@MiWiFi-R4CM-srv cmake3]# tree . ├── build ├── CMakeLists.txt

    2.1K20

    CMake 秘籍(五)

    Boost 提供了丰富 C++编程基础设施,并且受到 C++开发者欢迎。我们已经在第三章,检测外部和程序展示了如何在系统上找到 Boost 。...我们将重用来自第三章,检测外部和程序第 8 个食谱,检测 Boost 代码示例,但将其重新组织为超级构建形式。...另外两个子目录,interfaces和utils,包含将被编译成更多源代码。 在interfaces子目录源代码展示了如何封装 backtrace C 系统。...这是一个一行代码:我们创建一个新目标,该子目录文件将被编译到这个目标。...所有源文件都组织在src子目录下。为了限定范围,我们将 CMake 代码拆分到三个CMakeLists.txt文件,现在我们将讨论这些文件

    62820

    cmake终极奥义

    对于cmake,内部编译上面已经演示过了,它生成了一些无法自动删除中间文件,所以,引出了我们对外部编译探讨,外部编译过程如下: (1)、新建build目录 (2)、进入build目录,运行 cmake...文件需要编译成一个名称为 demo 可执行文件。...子目录 CMakeLists.txt # 查找当前目录下所有源文件 # 并将名称保存到 DIR_LIB_SRCS 变量 aux_source_directory(....例如,可以将 calc 设为一个可选,如果该选项为 ON ,就使用该定义函数来进行运算。否则就调用标准运算符进行操作。 还是之前代码,在此基础上进行增删。...首先先在 子目录CMakeLists.txt 文件里添加下面两行: # 指定 MathFunctions 安装路径 install (TARGETS calc DESTINATION lib)

    1.3K20

    CMake用法,这篇文章讲全了

    CMake以其强大跨平台能力成为众多开发者构建项目的首选工具。无论是简单文件项目,还是复杂文件、多文件夹乃至集成第三方大型工程,CMake都能游刃有余。...(VERSION 3.10) # 设置cmake最低版本要求为3.10 project(funclib) # 设置项目名称 # 递归查找source子目录所有.cpp文件, # 并将它们添加到...引用第三方(静态) 在实际开发,往往需要依赖外部。以静态为例,考虑引入其他同事提供func.lib,其配套文件为func.h,同时,生成动态名称为BirdEngine。.../lib) file(GLOB_RECURSE SOURCES "src/*.cpp") # 递归查找source子目录所有.cpp文件,并将它们添加到SOURCES变量 add_library.../include) # 添加第三方文件路径 link_directories(${CMAKE_SOURCE_DIR}/third_party/lib) # 递归查找source子目录所有

    11110

    如何在vue组件引入外部css和js文件

    在使用vue框架开发时,我们都知道一个组件可以同时写HTML、css、js代码,只需三个标签而已,如下: 但是要真把所有的代码都写入一个组件文件当中,那么代码量是非常大...,极不便于修改和维护,这时就需要把css样式和js代码写到其他文件下,再引入组件当中。...具体方法如下: 在组件引入css文件: @import url(css文件路径) 在组件引入js文件: 首先需要将我们js模块“抛出”,让其他文件能获取到...;如下, function home() { console.log("我是js文件") } export { home } 其次在需要导入文件导入; ...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    8.5K20

    【Android OpenCV】Visual Studio 创建支持 OpenCV CMake 工程 ① ( 下载 OpenCV | Windows 安装 OpenCV )

    平台中集成 OpenCV , 需要 下载 Android 平台 OpenCV ; 同时这里要 先在 Windows 开发 , 然后 移植到 Android 平台 , 因此这里也同样 下载...Windows 平台 OpenCV ; 如果在 Mac , 可以直接使用 brew install opencv 进行安装 ; 下载上述两个文件 : Windows 平台 OpenCV...OpenCV ---- 将下载 opencv-3.4.3-vc14_vc15.exe 安装到 Y:\001_DevelopTools\032_OpenCV\ 目录 ; 运行 opencv-3.4.3...-vc14_vc15.exe 程序 , 设置安装目录 ; 等待文件提取完成 ; 文件提取完成后 , OpenCV 会自动 安装到 Y:\001_DevelopTools\032_OpenCV\...目录 ; 同时 Android OpenCV , 直接解压到本地即可 , OpenCV-android-sdk 就是解压后 Android 平台 OpenCV ;

    1.1K30

    CMake,大型项目采用构建工具

    SOURCE_LIST 定义文件列表 内部构建和外部构建 在上面的例程,我们是采用内部构建,会看到cmake生成临时文件比我们编写文件还要多,而且在同一级目录下。...当我们要删除这些中间文件时会显得特别麻烦。所以有什么办法变得更加干净简洁呢?答案是采用外部构建。 外部构建简单理解就是将cmake生成中间文件与源文件分离。不让他们同一级目录。...步骤如下: 为工程创建一个子目录src,用于放置工程源代码main.c和CMakeLists.txt文件 在src目录CMakeLists.txt内容如下: SET(SRC_LIST main.c...) INSTALL指令用于定义安装规则,安装内容可以包括目标二进制、动态、静态以及文件、目录、脚本等。...后面跟就是我们通过ADD_EXECUTABLE或者ADD_LIBRARY定义目标文件,可能是可执行二进制、动态、静态

    1.1K20

    Cmake使用

    CMake可以说已经成为大部分C++开源项目标配 传统C++文件不通系统对应不通编译 比如 当添加一个文件时候需要对不通操作系统工程进行修改 有了Cmake以后,只需要编写一个...…) add_subdirectory – 向当前工程添加存放源文件子目录,并可以指定中间二进制和目标二进制存放位置 # 添加src子目录,src需有一个CMakeLists.txt add_subdirectory...:文件输出存放路径 CMake编译工程 CMake目录结构:项目主目录存在一个CMakeLists.txt文件 两种方式设置编译规则: 包含源文件文件夹包含CMakeLists.txt文件,主目录...CMakeLists.txt通过add_subdirectory添加子目录即可; 包含源文件文件夹未包含CMakeLists.txt文件子目录编译规则体现在主目录CMakeLists.txt;...build):推荐使用 将编译输出文件与源文件放到不同目录 ## 外部构建 # 1.

    1.4K30

    C++搭建集群聊天室(七):MySQL数据配置 及项目工程目录配置

    /src/* 然后,第一个CMake文件cmake_minimum_required(VERSION 3.0) # 最低版本 project(main) # 给这个工程一个名字,这不是可执行文件名字...,是工程名字 # 设置编译选项,不知道最后能不能过 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g) # 设置可执行文件最后输出目录 set(EXECUTABLE_OUTPUT_PATH...${PROJECT_SOURCE_DIR}/bin) # 配置头文件搜索路径 include_directories(${PROJECT_SOURCE_DIR}/include) include_directories...add_subdirectory(src) 第二个cmake文件: # 加载子目录 add_subdirectory(server) 第三个cmake文件: # 定义一个SRC_LIST变量,存放该目录下所有的源文件...SRC_LIST) # 指定生成可执行文件 add_executable(ChatServer ${SRC_LIST}) # 指定可执行文件生成时需要链接外部 target_link_libraries

    39710

    CMake项目的编译流程

    本文是本系列第六篇文章,你可以通过以下链接阅读以前章节 1.Linux编译C++代码g++工具,以及g++常用操作指令 2.Linux下C++命令行编译示例 3.Linux下GDB调试器常用指令...概述 CMake项目的主要目录存在一个 CMakeLists.txt 文件 我们有两种当时设置编译规则 包含源文件文件夹包含 CMakeLists.txt 文件,主目录 CMakeLists.txt...通过 add_subdirectory 添加子目录即可 包含源文件文件夹未包含 CMakeLists.txt 文件子目录编译规则体现在主目录 CMakeLists.txt 文件 2....CMake两种构建方式 3.1. 内部构建 (in-source build) : 不推荐使用 内部构建会产生很多中间文件,这些文件并不是我们最终想要,和工程源代码文件放在一起会显得杂乱无章。...外部构建 (out-of-source build) : 推荐使用 将编译目录和源代码目录区分开来,放在不同目录 外部编译示例 # 1.

    1.7K20
    领券