Clion(CMake工具)中创建父子项目,引入第三方库的方法
Posted xiangjai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clion(CMake工具)中创建父子项目,引入第三方库的方法相关的知识,希望对你有一定的参考价值。
目录
hello_lib目录下创建hello_dll.h hello_dll.cpp CMakeLists.txt文件
在build文件夹下面使用 cmake.. && make 进行编译
main目录下创建CMakeLists.txt main.cpp文件
环境
C/C++ Clion Mac
创建父/外层项目
创建外层项目,选择C++Executable,命名20210717
创建子项目/库项目
创建目录,命名hello_lib
hello_lib目录下创建hello_dll.h hello_dll.cpp CMakeLists.txt文件
hello_lib.h
#ifndef INC_20210717_HELLO_DLL_H
#define INC_20210717_HELLO_DLL_H
int add(int a, int b);
#endif //INC_20210717_HELLO_DLL_H
hello_dll.cpp
#include "hello_dll.h"
int add(int a, int b) {
return (a + b);
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.19)
project(hello_dll)
set(CMAKE_CXX_STANDARD 14)
#增加一个生成一个库文件,就是生成dylib文件,自动生成lib的格式
add_library(hello_dll SHARED hello_dll.cpp)
在build文件夹下面使用 cmake.. && make 进行编译
build文件夹下面使用 cmake.. && make 进行编译,就会生成libhello_dll.dylib
创建子项目/主项目
创建目录,命名main
main目录下创建CMakeLists.txt main.cpp文件
创建include和lib目录,将对应的头文件和动态库文件复制到对应目录
CMakeLists.txt
cmake_minimum_required(VERSION 3.19)
project(main)
set(CMAKE_CXX_STANDARD 14)
#设置头文件路径
set(INC_DIR ./include)
#设置链接库路径
set(LINK_DIR ./lib)
#引入头文件
include_directories(${INC_DIR})
#引入库文件
link_directories(${LINK_DIR})
# 如果想在主项目中添加文件,则在这里添加,如果在子文件夹中,则在子项目中添加
add_executable(main main.cpp)
#将第三方库链接在一起 window-dll mac-dylib
target_link_libraries(main libhello_dll.dylib)
main.cpp
#include <iostream>
#include "stdlib.h"
#include "stdio.h"
#include "include/hello_dll.h"
using namespace std;
int main() {
int c = add(1, 2);
cout << "c=" << c << endl;
return 0;
}
输出 c=3
以上是关于Clion(CMake工具)中创建父子项目,引入第三方库的方法的主要内容,如果未能解决你的问题,请参考以下文章
在一个 CMake 项目中创建多个 rpm(deb)包的最佳方法是啥?
当我在 CLion 2020.3 上使用远程工具链时,cmake 无法解析本地路径
使用 CMake 构建后,如何在 Visual Studio 中创建项目以使用 OpenMesh?
Android OpenCVVisual Studio 创建支持 OpenCV 库的 CMake 工程 ② ( VS 中创建 CMake 工程 | CMake 工程中配置 OpenCV 头文件 )