if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_VERSION MATCHES "centos") FIND_PATH(PCRE_INCLUDE_DIR pcre.h /usr/include/) FIND_LIBRARY(PCRE_LIBRARY libpcre.a /usr/lib64/) else() FIND_PATH(PCRE_INCLUDE_DIR pcre.h /usr/include/) FIND_LIBRARY(PCRE_LIBRARY libpcre.a /usr/lib/x86_64-linux-gnu/) endif()在我的centos系统里并检测不到,因为我的centos系统里CMAKE_SYSTEM_VERSION 是4.18.0-348.el8.x86_64
时间: 2024-03-14 12:49:40 浏览: 231
这是因为 CMake 代码中使用了 `CMAKE_SYSTEM_VERSION MATCHES "centos"` 来匹配 CentOS 系统版本,但实际的 CentOS 系统版本是 "4.18.0-348.el8.x86_64",与 "centos" 不匹配,导致无法找到 libpcre 库文件。
你可以尝试修改 CMake 代码,将 "centos" 修改为 "el8",即将 `CMAKE_SYSTEM_VERSION MATCHES "centos"` 修改为 `CMAKE_SYSTEM_VERSION MATCHES "el8"`。这样就能正确匹配 CentOS 8 的系统版本了。
相关问题
message("now using Findpcre.cmake find libpcre") FIND_PATH(PCRE_INCLUDE_DIR pcre.h /usr/include/) FIND_LIBRARY(PCRE_LIBRARY libpcre.a /usr/lib/x86_64-linux-gnu/) message("lib dir: ${PCRE_LIBRARY} include files ${PCRE_INCLUDE_DIR}") if(PCRE_INCLUDE_DIR AND PCRE_LIBRARY) set(PCRE_FOUND TRUE) endif(PCRE_INCLUDE_DIR AND PCRE_LIBRARY)改造一下,如果是centos系统那去/usr/lib64下找动态库,如果是其余系统则按之前的找
可以这样改造:
```
message("now using Findpcre.cmake to find libpcre")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_VERSION MATCHES "centos")
FIND_PATH(PCRE_INCLUDE_DIR pcre.h /usr/include/)
FIND_LIBRARY(PCRE_LIBRARY libpcre.a /usr/lib64/)
else()
FIND_PATH(PCRE_INCLUDE_DIR pcre.h /usr/include/)
FIND_LIBRARY(PCRE_LIBRARY libpcre.a /usr/lib/x86_64-linux-gnu/)
endif()
message("lib dir: ${PCRE_LIBRARY} include files ${PCRE_INCLUDE_DIR}")
if(PCRE_INCLUDE_DIR AND PCRE_LIBRARY)
set(PCRE_FOUND TRUE)
endif(PCRE_INCLUDE_DIR AND PCRE_LIBRARY)
```
这样,如果系统是 Linux 并且版本是 centos,就会去 `/usr/lib64` 下找动态库;否则就按照之前的方式去 `/usr/lib/x86_64-linux-gnu/` 下找动态库。
怎么解决,Run-time dependency libpcre2-8 found: NO (tried pkgconfig and cmake) Run-time dependency libpcre2-8 found: NO (tried pkgconfig and cmake)
这个问题通常出现在编译或安装软件时,缺少 libpcre2-8 依赖库。要解决这个问题,你可以尝试以下几种方法:
1. 使用包管理器安装依赖库:根据你使用的操作系统和包管理器,可以尝试运行以下命令来安装 libpcre2-8 依赖库:
- 对于 Ubuntu/Debian 系统:`sudo apt-get install libpcre2-8-0`
- 对于 Fedora/CentOS 系统:`sudo dnf install libpcre2-8`
- 对于 macOS 系统(使用 Homebrew):`brew install pcre2`
2. 手动安装依赖库:如果包管理器无法找到依赖库,你可以手动下载并安装 libpcre2-8。你可以在 libpcre2 的官方网站或其他源上找到相关的二进制包或源代码包。下载后,按照其提供的安装说明进行安装。
3. 更新包管理器的软件源:有时候,包管理器可能无法找到最新的依赖库版本。在尝试安装之前,你可以先更新软件源,然后再运行安装命令。
4. 检查依赖库路径:如果你已经安装了 libpcre2-8 依赖库,但仍然出现该错误,可能是因为库的路径没有正确配置。你可以通过设置 LD_LIBRARY_PATH 环境变量来指定正确的库路径。例如,运行以下命令:
`export LD_LIBRARY_PATH=/path/to/libpcre2-8:$LD_LIBRARY_PATH`
将 "/path/to/libpcre2-8" 替换为实际的库路径。
希望以上方法能帮助你解决这个问题。如果问题仍然存在,请提供更多详细信息,以便我可以提供更精确的解决方案。
阅读全文