d林操到窗口的交叉编译

原文
我在林操上安装了ldc2,我想为窗口编译程序.
我也下载了windows版本,并把libs放到linux版本的libs目录中,我正在试编译简单测试应用:

//ldc2 hello.d --mtriple x86_64-windows-msvc
import std.stdio;

void main() {
    writeln("你好啊");
}

但得到了链接器错误(-c编译得很好,但我需要生成可执行文件)

$LDC_PATH/etc/ldc2.conf中,要确保有

"x86_64-.*-windows-msvc":
{
    switches = [
        "-defaultlib=phobos2-ldc,druntime-ldc",
    ];
    lib-dirs = [
        "%%ldcbinarypath%%/../lib-win64",
    ];
};

下面是dscanner的工作原理:这里,这应开箱就可用.

我不能测试它,但试试如下:
1,下载LinuxLDC
2,下载WindowsLDC(多库)
3,在$LDC_PATH中,解压缩LinuxLDC.
4,把$LDC_PATH/bin添加到$PATH.
5,解压缩窗口版的LDC,并移动lib32lib64目录到<LDC_PATH>/win-lib32<LDC_PATH>/win_lib64.
6,添加以下行到$LDC_PATH/etc/ldc2.conf:

"i[3-6]86-.*-windows-msvc":
  {
      switches = [
          "-defaultlib=phobos2-ldc,druntime-ldc",
          "-link-defaultlib-shared=false",
      ];
      lib-dirs = [
          "%%ldcbinarypath%%/../win-lib32",
      ];
  };

  "x86_64-.*-windows-msvc":
  {
      switches = [
          "-defaultlib=phobos2-ldc,druntime-ldc",
          "-link-defaultlib-shared=false",
      ];
      lib-dirs = [
          "%%ldcbinarypath%%/../win-lib64",
      ];
  };

构建时用:

dub build --arch=x86_64-pc-windows-msvc

不确定是否是问题所在,但在此中,从窗口包中复制与主机LDC版本相同的窗口库是绝对重要的(这样,绑定可导入.d文件与预构建库匹配).你似乎用-git-501c657版本构建,因此窗口包也应是相同.

重新安装与窗口版本相同的ldc2版.工作正常.

posted @   zjh6  阅读(34)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示