如何让 cmake 使用另一个 opencv 目录,而不是 ubuntu 中的系统目录?
How to let cmake use another opencv directory other than the system's in ubuntu?
具体来说,我想包括my/path/to/opencv/release
的opencv,我自己的opencv是在/usr/local/include
中构建的,而不是系统的opencv库。我如何设置cmake
来实现这一点?我用的是Ubuntu 14.04
提供一个示例,下面是Luajit库的Find-CMake文件。你的CMake项目有一个可能叫做"FindOpenCV.cmake"。它很可能有一个手动添加的默认安装路径,例如:"/usr/include/luajit-2.0/usr/local/include/luajit-2.0",您可以将这些DIR更改为所需的安装目录。如果默认路径包含在变量中,您可以找到该变量的定义并更改它(最好通过配置选项),或者用字符串覆盖它。
# Try to find Lua or LuaJIT depending on the variable ENABLE_LUAJIT.
# Sets the following variables:
# LUA_FOUND
# LUA_INCLUDE_DIR
# LUA_LIBRARY
#
SET (LUA_FOUND FALSE)
SET (LUA_INTERPRETER_TYPE "")
SET (LUA_INTERPRETER_TYPE "LuaJIT")
SET (LUA_LIBRARY_NAME luajit-5.1)
SET (LUA_INCLUDE_DIRS /usr/include/luajit-2.0 /usr/local/include/luajit-2.0)
FIND_PATH (LUA_INCLUDE_DIR lua.h ${LUA_INCLUDE_DIRS}
HINT ${LUAJIT_INCLUDE_DIR_HINT}/include)
FIND_LIBRARY (LUA_LIBRARY NAMES ${LUA_LIBRARY_NAME} PATHS /usr/lib /usr/local/lib
HINT ${LUAJIT_INCLUDE_DIR_HINT}/bin)
#...
MARK_AS_ADVANCED ( LUA_INCLUDE_DIR LUA_LIBRARY)
有多种方法可以实现这一点,您可以修改FindOpenCV。cmake文件,你set
cmake变量OpenCV_DIR
之前找到库https://stackoverflow.com/a/9835300/2079934,你可以导出环境变量OpenCV_DIR
之前运行cmake https://stackoverflow.com/a/16959771/2079934。
我建议不要硬编码任何库路径到CMakeLists.txt,这会带走CMake的所有好处。在Linux中,我会使用export来设置OpenCV_DIR
,在其他操作系统中,CMake GUI更常见,您可以在GUI中编辑路径变量。
相关文章:
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- 即使在我为我的应用程序授予管理员后也无法从 Windows 系统复制目录
- 阻止用户在std :: casteriention ::文件系统中留下目录
- 在 Ubuntu 16.04 的 usr/local/bin 中安装的 c++ 应用程序在从主目录执行时无法正常运行
- 如何使用 cpp 文件系统在目录中查找最新文件
- 如何使用 C++17 std::文件系统获取用户的主目录?
- 如何使用 c++ 文件系统库将文件复制到另一个目录
- C++ boost::文件系统如何检测路径是文件还是目录
- Cygwin目录迭代器中的Boost文件系统
- 如何删除特定系统包括CMAKE中的目录
- 使用系统调用与基于库的方法压缩目录的优缺点
- UNIX类似文件系统的目录结构
- 如何在 ubuntu 的 C/C++ 包含目录中生成带有旺盛的 ctags 的标签文件以用于 gvim?
- 无法使用 QFileSystemModel 解析不同音频/视频文件的系统目录
- 如何访问系统目录C 中的文件
- 如何在 64 位 Ubuntu 系统上安装简单的英特尔 C/C++ 编译器
- ubuntu系统中scons的配置文件
- 如何防止从系统目录中包含文件
- 获取Ubuntu系统日志中的wxLogSysError
- 如何让 cmake 使用另一个 opencv 目录,而不是 ubuntu 中的系统目录?