在C/C++中使用OpenCV等库时,OpenCV_LIBS等变量用于将编译器/链接器指向相关目录。使用cmake的示例:
include_directories( ${OpenCV_INCLUDE_DIRS} ) target_link_libraries( project_name ${OpenCV_LIBS} )
如何查看这些变量指向哪里?我尝试在终端输入set或printenv,但只显示了一些系统变量。另外,如何设置/更改这些变量?
set
printenv
z2acfund1#
这些变量由cmake确定(有关opencv CMake变量可用的更详细描述,请参见OpenCVConfig.cmake)。要查看这些值,可以在find_package(OpenCV)调用之后添加message()调用到项目的CMakeLists.txt:
OpenCVConfig.cmake
find_package(OpenCV)
message()
CMakeLists.txt
find_package(OpenCV) message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}") message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
或者,您可以通过CMake命令行选项运行find_package。下面是一些例子(如果CMake不能自动找到库的安装路径,CMAKE_PREFIX_PATH部分是可选的):
find_package
CMAKE_PREFIX_PATH
MODE=COMPILE
MSVC
$ cmake --find-package -DNAME=OpenCV -DCOMPILER_ID=MSVC -DMSVC_VERSION=1700 -DLANGUAGE=CXX -DMODE=COMPILE -DCMAKE_PREFIX_PATH:PATH=/path/to/your/OpenCV/build
MODE=LINK
GNU
$ cmake --find-package -DNAME=OpenCV -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=LINK -DCMAKE_PREFIX_PATH:PATH=/path/to/your/OpenCV/build
CMakeFiles
CMakeFindPackageMode
yzckvree2#
查找包(OpenCV)消息(状态“开放CV_包含_DIRS = ${开放CV_包含_DIRS}”)消息(状态“开放CV_库= ${开放CV_库}”)非常有用的消息,我可以在eclipse中正确地指向库。谢谢
2条答案
按热度按时间z2acfund1#
这些变量由cmake确定(有关opencv CMake变量可用的更详细描述,请参见
OpenCVConfig.cmake
)。要查看这些值,可以在
find_package(OpenCV)
调用之后添加message()
调用到项目的CMakeLists.txt
:或者,您可以通过CMake命令行选项运行
find_package
。下面是一些例子(如果CMake不能自动找到库的安装路径,
CMAKE_PREFIX_PATH
部分是可选的):MODE=COMPILE
提供包含目录(例如,使用MSVC
编译器)MODE=LINK
提供链接库(例如,使用GNU
编译器)CMakeFiles
子目录。参考资料
CMakeFindPackageMode
CMake module documentationyzckvree2#
查找包(OpenCV)
消息(状态“开放CV_包含_DIRS = ${开放CV_包含_DIRS}”)消息(状态“开放CV_库= ${开放CV_库}”)
非常有用的消息,我可以在eclipse中正确地指向库。
谢谢