C++ ZBar cmake 错误"找不到文件"时包括
C++ ZBar cmake error 'File not found' when including
在C++脚本中包含ZBar
时遇到问题。我已经尝试过通过CMakelists.txt
:添加它
cmake_minimum_required(VERSION 2.8.12)
project( Barcode-cpp )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} ${ZBARCV_SOURCE_DIR} )
set(CMAKE_MODULE_PATH ${ZBARCV_SOURCE_DIRS})
add_compile_options(-std=c++11)
add_library( src
src/VideoVeed.h
src/VideoVeed.cpp
src/Crop.h
src/Crop.cpp
src/Barcodes.h
src/Barcodes.cpp
)
add_executable( program
program/main.cpp
)
target_link_libraries( program src ${OpenCV_LIBS} ${ZBAR_LIBRARIES} zbar )
我在mac上。我看了看,我的zbar.h
文件位于/usr/local/include/
中,它应该在那里。
我包括这样的:#include <zbar.h>
我希望有人能帮助我。提前谢谢!
编辑:
完整错误日志:
/Users/mathijs/Documents/Barcode-cpp/src/Barcodes.h:7:10: fatal error: 'zbar.h' file not found
#include <zbar.h>
^~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/src.dir/src/VideoVeed.cpp.o] Error 1
make[1]: *** [CMakeFiles/src.dir/all] Error 2
make: *** [all] Error 2
我刚刚检查过;ZBar的Brew包包括一个packageconfig文件(zbar.pc
(
这意味着你可以使用现代CMake工具而不是货物培养:
cmake_minimum_required(VERSION 3.8)
project( Barcode-cpp )
find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
set(CMAKE_CXX_STANDARD 11)
add_library( src
src/VideoVeed.h
src/VideoVeed.cpp
src/Crop.h
src/Crop.cpp
src/Barcodes.h
src/Barcodes.cpp
)
add_executable( program
program/main.cpp
)
target_link_libraries(program src ${OpenCV_LIBS})
find_package(PkgConfig REQUIRED)
pkg_check_modules(ZBar REQUIRED IMPORTED_TARGET zbar)
target_link_libraries(program PkgConfig::ZBar)
pkg_check_modules
将读取zbar.pc
文件并生成名为PkgConfig::ZBar
的IMPORTED
目标,该目标将自动设置program
的包含路径和链接器路径。
相关文章:
- 包括C++头文件
- 链接错误,包括我创建的相同头文件 - C++
- 标头,包括在 Swift 项目中使用C++文件时的错误
- 可执行文件C++包括.obj,.lib和.dll吗?
- 私有,包括头文件
- 包括头文件或 cpp 文件
- 如何将CPP文件包括在两个不同的CPP文件中
- 如何将标题文件包括在C DLL文件中
- 无法分离标头和cpp文件(包括错误和代码)
- 我如何grep通过所有文件#包括在文件中当前打开的vim
- 头文件包括彼此
- 博兰德C++链接器错误c文件包括
- 包括头文件(包括它们自己)
- 无法使用标头保护解决包含其自身的文件(包括标头)的错误
- C++头文件包括组织
- 如何从文件夹中读取所有txt文件?(包括子文件夹)
- c++嵌套头文件包括编译
- Qt创建者直接文件包括
- Cpp文件包括,同时也可以在其中调试
- 静态库头文件包括其他头文件。我是否需要这些头文件的实现/源文件?