美文网首页
学习cmake

学习cmake

作者: gb_QA_log | 来源:发表于2018-04-09 21:50 被阅读0次

make

cmake是为了支持make的跨平台而出现的。因此,我们首先学习make,可以看这里

cmake

mark:2018-09-08
basic tutial
关于cmake的博客
cmake常用的命令
文件目录结构:

project
│   CMakeLists.txt
└───deps
│   │   CMakeLists.txt
│   └───include
│   │   └───deps.cc
│   └───src
│   │   └───deps.h   
└───include
│   └───main.h 
└───src
│   └───main.cc

./CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(CPrimerTest)
set(CMAKE_CXX_STANDARD 14)
include_directories ("${PROJECT_SOURCE_DIR}/deps")
add_subdirectory (deps)
# add the executable
add_executable(CPrimerTest src/main.cpp include/main.h)#生成可执行文件
target_link_libraries(CPrimerTest deps)
# add the install targets
install (TARGETS CPrimerTest DESTINATION bin)
install (FILES include/main.h DESTINATION include)

./deps/CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(deps)
set(CMAKE_CXX_STANDARD 14)
add_library(deps src/deps.cpp include/deps.h) #生成库
install (TARGETS deps DESTINATION bin)
install (FILES include/deps.h DESTINATION include)

之后编译、安装

mkdir build && cd build
cmake ..
make && make install DESTDIR=~/Documents/code/CPrimerTest/install_test_dir

附:
deps.h

#ifndef CPRIMERTEST_DEPS_H
#define CPRIMERTEST_DEPS_H
class Deps{
public:
    Deps();
    void print();
};
#endif //CPRIMERTEST_DEPS_H

deps.h

#include "../include/deps.h"
#include <iostream>
int cnt = 0;
Deps::Deps() {
    cnt++;
}
void Deps::print() {
    std::cout<<"it is a Deps instance. ID:"<<cnt<<std::endl;
}

main.cc

#include <iostream>
#include "../deps/include/deps.h"
using namespace std;
extern int cnt;
int main() {
    Deps deps;
    deps.print();
    std::cout<<cnt<<flush;
    std::cout<<'a';//需要等待flush
    std::cerr<<'e';
    return 0;
}

main.h

#ifndef CPRIMERTEST_MAIN_H
#define CPRIMERTEST_MAIN_H
#include <iostream>
class A{
    A(int a){
        std::cout<<a;
    }
};
#endif //CPRIMERTEST_MAIN_H

相关文章

  • cmake学习笔记6-catkin的CmakeList.txt讲

    引用cmake学习笔记-cmakelist.txt创建项目示例cmake的介绍和使用 Cmake实践推荐cmake...

  • CMake学习

    CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...

  • 教程

    通过例子学习CMake[https://sfumecjf.github.io/cmake-examples-Chi...

  • CMake学习

    CMake学习 参考自《Cmake Practice --Cjacker》 基本语法规则 变量的引用 变量使用${...

  • 学习CMake(一)

    开篇立意,这个系列是为了让我能够更快更好的学习CMake这个工具,学习的资料源于cmake-bulidsystem...

  • CMake学习小结--变量

    CMake学习小结 参考资料 CGold的Cmake教程 -- 这个教程很新: https://cgold.rea...

  • 学习cmake

    make cmake是为了支持make的跨平台而出现的。因此,我们首先学习make,可以看这里。 cmake ma...

  • CMake学习

    目录 什么是CMake? linux平台安装CMake CMake的helloworld 1. 什么是CMake?...

  • 学习 cmake

    打包工具 cmake brazel qmake 在 c++圈是比较流行的几款最近学习主流的cmake首先在使用c...

  • CMake学习

    前言:最近在学习NDK时,一些学习资料的项目都是在eclipse上写的,这些项目都是基于NDK构建的,但是现在的A...

网友评论

      本文标题:学习cmake

      本文链接:https://www.haomeiwen.com/subject/kfewhftx.html