关于c++去编译程序,制作动态链接库时遇到的问题!

我想要制作一个动态链接库,用于python来调用c++的程序,于是我尝试将我的c++文件制作成一个库,先弄了一个简单的文件:文件名称为dll_generate

#include "library.h"
#include <iostream>

// 实现
void MyAdd(int a, int b) {
    std::cout << a + b << std::endl;
}

下面是.h文件


#ifndef DLL_GENERATE_LIBRARY_H
#define DLL_GENERATE_LIBRARY_H

// extern "C":以C方式导出
// __declspec(dllexport) 声明一个导出函数
//extern "C" __declspec(dllexport)
void MyAdd(int a, int b);

#endif //DLL_GENERATE_LIBRARY_H

下面是cmakelist文件


cmake_minimum_required(VERSION 3.21)
project(dll_generate)

set(CMAKE_CXX_STANDARD 14)

add_library(dll_generate SHARED library.cpp library.h)
#add_library(<name> [STATIC | SHARED | MODULE]
 #       [EXCLUDE_FROM_ALL]
 #       [source1] [source2] [...])

但是在编译后并没有看到dll文件或者exe这些文件

img

ninja文件是什么呢,我不太懂,去查询也没有找到我想要的方向,我尝试看了编译前后文件的区别,多出的东西没有声明属性(就是.dll文件这样)然后我尝试重命名,但是结果不行

我的编译环境是ubuntu中的clion
我希望能够建立一个可以被python调用的动态库,希望大家能给予指点,感激不尽!

已经解决了,我的理解是 是因为ubuntu环境下clion编译就是不生成dll文件。那最后编译出的结果并不是ninja,而是.so文件。具体参考宝藏博主的文章https://blog.csdn.net/haluoluo211/article/details/71081203?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=1?