cmake多级目录CMakeLists.txt使用

IT开发记录 未分类评论736阅读模式

代码结构

举例代码结构如下,main.cpp需要访问本目录下的Circle以及lib目录下math。

cmake多级目录CMakeLists.txt使用

代码内容

math.h

#ifndef LIB_MATH
#define LIB_MATH

int mul(int input);

#endif

math.cpp

#include "math.h"

int mul(int input)
{
    return 2 * input;
}

Circle.cpp

#include "Circle.h"

Circle::Circle()
{
    this->r=5.0;
}

Circle::Circle(double R)
{
    this->r=R;
}

double Circle:: Area()
{
    return 3.14*r*r;
}

Circle.h

#ifndef CIRCLE_H
#define CIRCLE_H

class Circle
{
private:
    double r;//半径
public:
    Circle();//构造函数
    Circle(double R);//构造函数
    double Area();//求面积函数
};

#endif

main.cpp

#include <iostream>
#include "Circle.h"
#include "math.h"
using namespace std;

int main()
{
    Circle c(3);
    cout<<"Area="<<c.Area()<<endl;

    int val = mul(18);
    cout<<"GetValue="<<val<<endl;
    return 1;

}

CMakeLists.txt编写

主目录下CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)
project(testVScode VERSION 0.1.0)

aux_source_directory(. DIRSRCS)
include_directories(./ ./lib)
add_subdirectory(lib)

add_executable(${PROJECT_NAME} ${DIRSRCS})
target_link_libraries(${PROJECT_NAME} lib)

子目录(lib)下的CMakeLists.txt

aux_source_directory(. DIR_LIB_SRCS)
add_library (lib ${DIR_LIB_SRCS})

然后使用cmake编译即可。

golang识别项目文件路径问题 Golang

golang识别项目文件路径问题

go读取配置文件时,经常会出现无法识别文件路径的问题。如果能获取到项目的绝对路径,则可以定位到项目中任意文件位置,那么如何获得项目的绝对路径? 可以使用runtime.Caller()方法获取到执行该...
golang之package中引用变量与undefined问题 Golang

golang之package中引用变量与undefined问题

问题 遇到过这样的问题,IDE与命令行对变量的引用有所不同。举个例子,需要在一个package下两个文件需要引用同一变量或函数,如果在两个文件中都定义,则在IDE中会提示重复定义了某个变量或函数,那好...
git使用代理 Git

git使用代理

如果是socks协议,查看自己本地端口(如1080),则直接使用如下命令即可: git config --global http.proxy 'socks5://127.0.0.1:1080' 查看代...
git在不同操作系统下协作需要的配置 Git

git在不同操作系统下协作需要的配置

一、换行符问题 由于不同操作系统的换行符有所不同,比如在Mac操作系统的换行符叫做LF,而windows系统的叫做CRLF(具体差别如下)。因此git在多方进行版本控制时,经常会出现因换行符不同而产生...