zoukankan      html  css  js  c++  java
  • ubuntu下编译C++程序

    1、CMake

    定义:CMake是一个跨平台编译工具,可以用来自动输出makefile文件;

    用法:(1)想要自动生成makefile,还需要编写对应的CMakeLists.txt文件;

       (2)在CMakeLists.txt的同级目录下使用"cmake ."命令就能生成对用的makefile文件;

    语法解释,以下面这个脚本为例:

    cmake_minimum_required(VERSION 2.8)  //cmake最低要求版本2.8以上
    project( DisplayImage )  //project不是强制性的,最好加上,这会引入两个变量:DISPLAYIMAGE_BINARY_DIR和DISPLAYIMAGE_SOURCE_DIR
    find_package( OpenCV REQUIRED ) //寻找库文件
    add_executable( DisplayImage DisplayImage.cpp )  //生成可执行文件
    target_link_libraries( DisplayImage ${OpenCV_LIBS} ) //可执行文件和库之间建立链接

    2、makefile

    定义:makefile是一个文件,它定义了一系列的规则来指定,哪些文件需要先编译,哪些后编译,哪些需要重新编译,甚至于进行更复杂的功能操作;

    cmake和makefile的关系如下:

    第一个例子:编译一个opencv小程序

    (1)编写源文件

    #include <stdio.h>
    #include <opencv2/opencv.hpp>
    using namespace cv;
    //DisplayImage.cpp
    int main(int argc, char** argv )
    {
        if ( argc != 2 )
        {
            printf("usage: DisplayImage.out <Image_Path>
    ");
            return -1;
        }
        Mat image;
        image = imread( argv[1], 1 );
        if ( !image.data )
        {
            printf("No image data 
    ");
            return -1;
        }
        namedWindow("Display Image", WINDOW_AUTOSIZE );
        imshow("Display Image", image);
        waitKey(0);
        return 0;
    }

    (2)编写CMakeLists.txt文件

    cmake_minimum_required(VERSION 2.8)
    project( DisplayImage )
    find_package( OpenCV REQUIRED )
    add_executable( DisplayImage DisplayImage.cpp )
    target_link_libraries( DisplayImage ${OpenCV_LIBS} )

    (3)编译

    cmake .
    make

    (4)执行

    ./DisplayImage lena.jpg

    (5)结果

  • 相关阅读:
    pat1041. Be Unique (20)
    Linux基础命令---service
    Linux基础命令---last
    Linux基础命令---date
    Linux基础命令---ckconfig
    Linux基础命令---cal
    Linux基础命令---bc
    linux基础命令---df
    linux基础命令---du
    Linux基础命令---hwclock
  • 原文地址:https://www.cnblogs.com/zf-blog/p/11904303.html
Copyright © 2011-2022 走看看