如何在Windows下使用MinGW GCC将以D编写的库与以C编写的程序链接以使用它?

问题描述

对于Windows,我想使用用D编写的库编写与MinGW GCC兼容的C程序。这是代码:

dll.d

extern (C) int dsquare(int n) nothrow
{
    return n * n;
}

main.c

#include <stdio.h>

int main()
{
    int res = dsquare(6); // Expect '36'
    printf("res = %d\n",res);
    return 0;
}

a tutorial on D's site,但它似乎仅针对Linux。确实,没有为Windows和MinGW用户创建这样的动态D库提供任何解释。

D's documentation也说-shared选项应该生成D代码的DLL版本,但就我而言,它生成可执行文件,我不知道为什么。

此外,任何看起来会生成要链接的文件的东西都以MVSC格式为目标,而似乎没有任何东西适合MinGW GCC编译器。

因此,如何使用D生成“ GCC友好” DLL,这样我就可以将其链接到C程序,而不必通过gcc main.c -o main -ldll -L.使用其他编译器,例如GDC或LDC(我猜)?

解决方法

我附上了简短说明的链接。将D链接到C并不像C链接到D那样简单。请在此处查看D.org页面: https://dlang.org/spec/betterc.html

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...