开始学Linux, 说实话还真的很痛苦
在Linux中写好一个c++程序, 需要两个过程才能形成一个可执行文件: compile和link
Compile是编译过程, 也就是把源文件生成一些中间目标文件.obj
Link是将这些.obj文件和library file中的.lib文件链接起来,并且生成可执行文件 .a
一般可以自己写makefile文件, 来预设上述过程所需的前提, 一般模式是
target: dependencies
[tab] system command
比较复杂容易出错
用Cmake来自动生成Makefile文件的一般步骤是
- 写CMakeLists.txt文件
- 在terminal中切换到源程序所在directory
- mkdir build
- cd build
- cmake ..
- make
- 在bin或者当前directory中运行./out.a
- 如果重新运行, 保险方法 rm -mf build 重新来一遍
重点是如何写CMakeLists.txt文件,下面是一个含OpenCV的一个Imread的例子, 源程序是imread.cpp
cmake_minimum_required (VERSION 2.8)
project(Imread)
find_package(OpenCV REQUIRED)
add_executable(Imread imread.cpp)
target_link_libraries(Imread ${OpenCV_LIBS})
再比如一个含有OpenCV和Curl两个library的