• 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)结果

  • 相关阅读:
    sqlserver用户授予权限
    数据库内创建用户失败
    连接服务器出错
    ajax基础请求
    --------基础部分总结---------
    冒泡排序(面试题)
    二维数组
    利用for循环使用数组
    数组的内存分析与三种初始化类型
    数组 声明和创建 数组内的所有元素相加
  • 原文地址:https://www.cnblogs.com/zf-blog/p/11904303.html
Copyright © 2020-2023  润新知