You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不安装到系统路径将zxing-cpp静态库引入C++项目

问题原因

你遇到的报错是因为zxing-cpp默认的CMake配置下,ZXingTargets.cmake 仅在执行安装步骤时生成,不会输出到源码构建目录(build文件夹)。你仅执行了cmake和make编译步骤,没有执行安装,也没有指定自定义安装路径,自然无法找到该文件。

解决方法

两种方案都不需要将依赖安装到/usr等系统路径:

方法一:指定自定义路径安装zxing-cpp

  • 进入zxing-cpp源码目录,重新执行编译安装流程:
cd dependencies/zxing
rm -rf build && mkdir build && cd build
# 指定安装到源码同级的install目录,不接触系统路径
cmake .. -DCMAKE_INSTALL_PREFIX=../install -DBUILD_SHARED_LIBS=OFF
# 编译并安装到指定路径
make -j$(nproc)
make install
  • 修改你项目的CMakeLists.txt,将ZXing_DIR指向安装路径下的cmake配置目录:
# 替换原有set(ZXing_DIR...)的行
set(ZXing_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/zxing/install/lib/cmake/ZXing")

重新配置你的项目即可正常找到ZXing包。

方法二:直接嵌入zxing-cpp源码到项目(更省心)

不需要提前单独编译zxing-cpp,直接将其作为子模块集成到你的构建流程:

  • 修改你的项目CMakeLists.txt如下:
cmake_minimum_required(VERSION 3.0)
project(sample)
set(CMAKE_CXX_STANDARD 20)

# 直接引入zxing-cpp源码目录,EXCLUDE_FROM_ALL表示不会安装zxing的文件到你的项目安装路径
add_subdirectory(dependencies/zxing EXCLUDE_FROM_ALL)

add_executable(sample main.cpp ZXingOpenCV.h)
target_link_libraries(sample ZXing)

这种方式编译你的项目时会自动同步编译zxing-cpp,完全不需要处理安装、路径配置问题,也不会污染系统路径。

注意事项

修改配置后请清空你项目的build缓存目录,再重新执行cmake配置,避免旧缓存导致仍然报错。

内容的提问来源于stack exchange,提问作者Merit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:27:02