使用code::blocks编译windows的dll链接库
2021-06-14 19:04
标签:创建 code mpi case repo 需要 nbsp turn 简单的 因为机子上没有安装Visual Studio,所以找到了一种通过code::blocks编译dll的方式,踩到的坑是code::blocks默认的compiler是32位的,这样编译出的dll也是32位的,编译64位的需要借助MinGW-w64的toolchain。 为code::blocks配置外部MinGW-w64编译器可以参考Compile 64-bit under windows with MinGW-w64。 使用code::blocks创建一个dll的工程,如下图: go和next到下一步: 选择我们上面配置的编译器: Finsh完成,此时已经建好main.h和main.cpp文件,这里我实现了一个add函数的dll库,代码如下: main.cpp build之后就可以生成我们想要的dll库。这里刚开始没发现compiler位数问题,编译出的是32位的dll,在x86_64平台上用会报错,通过使用Cygwin命令行仿真工具的file命令可以查看dll的位数,这个是比较简单的判断dll位数的方式。 这里在安装MingGW-w64 toolchain时也遇到一个问题,就是使用上述链接提供的MinGW下载链接下载的mingw-w64-installer.exe安装时会报"cannot download repository.list"的错误,所以又找了下发现这个错误还挺多人碰到过,官方没有修复而是给出编译好的版本,可以在这里下载,下载完解压出来就可以使用了。 使用code::blocks编译windows的dll链接库 标签:创建 code mpi case repo 需要 nbsp turn 简单的 原文地址:https://www.cnblogs.com/glensblog/p/10412806.html#ifndef __MAIN_H__
#define __MAIN_H__
#include
// a sample exported function
int DLL_EXPORT add(int a, int b)
{
return a + b;
}
extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
break;
case DLL_PROCESS_DETACH:
// detach from process
break;
case DLL_THREAD_ATTACH:
// attach to thread
break;
case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}
文章标题:使用code::blocks编译windows的dll链接库
文章链接:http://soscw.com/index.php/essay/93970.html