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日

悬赏问题

  • ¥15 vs code配置c语言遇到这个问题
  • ¥15 vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
  • ¥20 access中怎么分割分别获取一下图中的值
  • ¥15 keras_tcn已经安装成功,还是显示ModuleNotFoundError: No module named 'keras_tcn'
  • ¥15 ENVI高分五号去除云层的方法
  • ¥15 16进制数据如何得到奇偶校验位
  • ¥15 求合并两个字节流VB6代码
  • ¥15 Pyqt 如何正确的关掉Qthread,并且释放其中的锁?
  • ¥30 网站服务器通过node.js部署了一个项目!前端访问失败
  • ¥15 WPS访问权限不足怎么解决