多目录工程的CmakeLists.txt编写
本文最后更新于:2022年5月29日 上午
绪
开发一个cmake项目工程,一般会有多级目录,进行代码分类,这里以一个简单的例子介绍一下多目录工程的CmakeLists.txt编写。
功能为print.cpp调用hello.cpp 的hello()函数,main.cpp调用print.cpp 的print()函数。
1、工程目录
一级目录下有整体项目的CMakeLists.txt,子目录也分别有各自的CMakeLists.txt
2、主函数main.cpp
1 |
|
3、顶层CMakeLists.txt
1 |
|
4、hello文件夹
CMakeLists.txt
1
2aux_source_directory(. DIR_HELLO_SRCS)
add_library(hello ${DIR_HELLO_SRCS})hello.cpp
1
2
3
4
5
6#include "hello.h"
void hello()
{
cout << "hello,";
}hello.h
1
2
3
4
5
6
7
8
9#ifndef HELLO_H
#define HELLO_H
#include <iostream>
using namespace std;
void hello();
#endif
5、print文件夹
CMakeLists.txt
1
2
3
4aux_source_directory(./ DIR_PRINT_SRCS)
add_library(print ${DIR_PRINT_SRCS})
target_link_libraries(print hello) # 添加链接库,因为需要使用到hello.cpp的hello()函数print.cpp
1
2
3
4
5
6
7#include "print.h"
void print()
{
hello();
cout << "Cmake" << endl;
}print.h
1
2
3
4
5
6
7
8
9
10#ifndef _PRINT_H
#define _PRINT_H
#include <iostream>
#include "hello.h"
using namespace std;
void print();
#endif
多目录工程的CmakeLists.txt编写
https://kevinloongc.github.io/posts/93012594.html