mingw安装以及c++.Dll生成和导出

为了配合C++和Qt开发,安装MinGW方便动态链接库DLL生成和导出。MinGW-W64都是用于Windows平台的轻量级GNU工具链,用于开发和编译C和C++程序。包括 GCC (GNU Compiler Collection) 编译器套件,以及一些其他工具和库。
首先是下载问题,windows 64位系统下载建议:x86_64-win32-seh。然后添加系统变量:在系统变量中配置路径。最后可通过cmd 键入gcc -v查看是否安装成功和其版本。
创建dll:
首先创建一个空项目,创建头文件导出类或函数声明。
fft_dll.h

#ifdef BUILD_CAL_DLL // 如果定义了构建,表示生成xxx.dll
#define EXPORT __declspec(dllexport)
#else                // 否则表示引用xxx.dll
#define EXPORT __declspec(dllimport)
#endif

/*接口*/
extern "C" {
	EXPORT int addInt(int, int);
	EXPORT int subInt(int, int);
}

其中类的导入实例 fft_dll.h

#pragma once
#ifdef FFT_EXPORTS // 如果定义了构建,表示生成xxx.dll
#define FFTAPI __declspec(dllexport)
#else                // 否则表示引用xxx.dll
#define FFTAPI __declspec(dllimport)
#endif

/*接口*/
#include <iostream>
#include <cmath>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 此处声明导入类
extern "C" {
	 class FFTAPI my_fft;  //要导入的类
}

// 定义类 My_fft
class my_fft
{
public:
	...
private:
	...
};

其次创建 fft_dll.cpp文件,定义函数。

#define BUILD_CAL_DLL // 定义xxx.dll构建
#include "cal.h"      // 引用xxx.h头文件

/*接口函数*/
int addInt(int a, int b) {
	return a + b;
}

int subInt(int a, int b) {
	return a - b;
}

最后是通过在项目文件中cmd中键入:

g++ -shared -Wl,--kill-at,--output-def,fft_dll.def,--out-implib,fft_dll.a -o fft_dll.dll fft_dll.cpp

即可生成,a .dll .def 等文件。
注意:多余空格会报错!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值