cmake如何知道include文件和lib在哪里
How can cmake know where the include files and libs are?
我正在使用cmake成功编译一个用C++和OpenCV编写的简单DisplayImage项目。我遵循了以下指示:http://docs.opencv.org/3.0-beta/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html。我真的不知道cmake是如何从CMakeLists.txt文件中检索OpenCV includes和libs的:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
我的意思是,我不应该告诉它在哪里搜索OpenCV吗?例如/usr/local/lib或/usr/local/include/opencv。。。
它是如何使用OpenCV的,只告诉它我想使用OpenCV,而不指定在哪里查找?我想我错过了什么。。请帮忙!
find_package将运行cmake模块(即脚本(,该模块将在OpenCV的预定义目录中查找。该模块将设置cmake变量,如OpenCV_INCLUDE_DIRS和OpenCV_LIBRS。如果你做得正确,你仍然必须将这些目录和库添加到项目中的相应列表中,因为这取决于你的项目正在做什么:你可能正在同一个make文件中构建多个可执行文件和/或库,但可能不想将所有库链接到所有可执行文件/库。
如果你对这个模块的工作原理感兴趣,你可以看看它。通常你会在/usr/share/cmake-2.8/Modules中找到它(用你正在使用的cmake版本替换"2.8"(。我的机器上没有FindOpenCV.cmake文件,所以我想它是随OpenCV一起提供的。cmake本身也提供了其他Find脚本,因此您会有很多文件在其中。(该目录还有其他模块,不仅仅是find_package脚本。(
- C++我需要了解在哪里使用指针和双指针
- 未定义的引用在哪里
- 谷歌测试中的期望值存储在哪里
- 尽管遵循了规则,内存泄漏在哪里
- 静态数据成员模板专用化的实例化点在哪里
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 在哪里声明结构运算符重载
- C++ 中的自定义异常:在哪里定义它们?
- 常量参数存储在哪里 (C++)?
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 此递归函数的每次迭代的值存储在哪里?
- 如何告诉本机节点模块所需的dll存储在哪里?
- 在哪里存储跨平台C++应用存储?
- C++泛型类错误,问题出在哪里?
- 在标准中,模板参数的语法在哪里定义,例如,'std::function<int(char)>'?
- 将类作为主要参数的语法在哪里需要?
- 模板参数在 C++ 中存储在哪里?
- Windows 7中的Oleaut32.lib在哪里?
- 在哪里放置头文件和lib文件
- cmake如何知道include文件和lib在哪里