代码结构
举例代码结构如下,main.cpp需要访问本目录下的Circle以及lib目录下math。
代码内容
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编译即可。