qq_46683754 2022-03-27 10:20
浏览 14
已结题

关于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调用的动态库,希望大家能给予指点,感激不尽!

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 创建了问题 3月27日