安装opencv3.4.9 sudo ldconfig之后显示 /sbin/ldconfig.real: $PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 不是已知类型的库
时间: 2023-09-24 18:07:37 浏览: 54
这个错误可能是因为 `$PKG_CONFIG_PATH` 环境变量设置错误导致的。 `$PKG_CONFIG_PATH` 环境变量是用于告诉 `pkg-config` 命令在哪里查找库文件的路径。
你可以尝试以下步骤:
1. 确认你已经正确安装了 `pkg-config` 命令。如果没有安装,可以使用以下命令进行安装:
```
sudo apt-get install pkg-config
```
2. 确认 `$PKG_CONFIG_PATH` 环境变量是否已经设置。你可以通过在终端中输入以下命令来检查:
```
echo $PKG_CONFIG_PATH
```
如果没有任何输出,那么 `$PKG_CONFIG_PATH` 变量还没有被设置。否则,你会看到类似于 `/usr/local/lib/pkgconfig` 的输出。
3. 如果 `$PKG_CONFIG_PATH` 变量还没有被设置,你可以使用以下命令将其设置为 `/usr/local/lib/pkgconfig`:
```
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
```
如果你已经设置了 `$PKG_CONFIG_PATH` 变量,请确保其值为 `/usr/local/lib/pkgconfig`。
4. 重新运行 `sudo ldconfig` 命令。如果你仍然遇到错误,请尝试重新启动你的计算机。
希望这些步骤可以帮助你解决问题。
相关问题
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(opencv_cl) SET(OPENCV_PATH /home/toybrick/rk3588_opencv) MESSAGE(STATUS "CMAKE_C_COMPILER:${CMAKE_C_COMPILER}") MESSAGE(STATUS "CMAKE_CXX_COMPILER:${CMAKE_CXX_COMPILER}") MESSAGE(STATUS "OPENCV_PATH:${OPENCV_PATH}") INCLUDE_DIRECTORIES(${OPENCV_PATH}/include/opencv4 ${OPENCV_PATH}/include) LINK_DIRECTORIES(${OPENCV_PATH}/lib /usr/lib/aarch64-linux-gnu/) SET(LINK_LIBS opencv_world mali pthread dl) ADD_EXECUTABLE(opencv_cl opencl_cs.cpp) TARGET_LINK_LIBRARIES(opencv_cl ${LINK_LIBS}) 在哪添加-Wl,-Bsymbolic
您可以在 SET 命令中设置变量 CMAKE_SHARED_LINKER_FLAGS,加上 -Wl,-Bsymbolic 选项即可。修改后的 CMakeLists.txt 如下:
```cmake
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(opencv_cl)
SET(OPENCV_PATH /home/toybrick/rk3588_opencv)
MESSAGE(STATUS "CMAKE_C_COMPILER:${CMAKE_C_COMPILER}")
MESSAGE(STATUS "CMAKE_CXX_COMPILER:${CMAKE_CXX_COMPILER}")
MESSAGE(STATUS "OPENCV_PATH:${OPENCV_PATH}")
INCLUDE_DIRECTORIES(${OPENCV_PATH}/include/opencv4 ${OPENCV_PATH}/include)
LINK_DIRECTORIES(${OPENCV_PATH}/lib /usr/lib/aarch64-linux-gnu/)
SET(LINK_LIBS opencv_world mali pthread dl)
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
ADD_EXECUTABLE(opencv_cl opencl_cs.cpp)
TARGET_LINK_LIBRARIES(opencv_cl ${LINK_LIBS})
```
这样设置 CMAKE_SHARED_LINKER_FLAGS 后,链接器在链接时会尽可能使用本地符号,而不是全局符号,从而解决符号版本不兼容的问题。
OpenCV(4.8.0) /io/opencv/modules/imgproc/src/histogram.cpp:3440:
报错原因是直方图输入数据为uint16,而OpenCV要求数据格式为uint8。通常的图像文件格式使用的是Unsigned 8bits,对应的参数类型是CV_8UC1。而float是32位的,对应的参数类型是CV_32FC1。double是64位的,对应的参数类型是CV_64FC1。在代码中,可以尝试将输入数据转换为uint8格式后再进行直方图均衡化操作。
#### 引用[.reference_title]
- *1* *2* *3* [opencv 直方图均衡化(-215:Assertion failed) _src.type() == CV_8UC1 in function ‘equalizeHist](https://blog.csdn.net/zhuiyuanzhongjia/article/details/124775364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]