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,下载Linux的LDC
2,下载Windows的LDC(多库)
3,在$LDC_PATH中,解压缩Linux的LDC.
4,把$LDC_PATH/bin添加到$PATH.
5,解压缩窗口版的LDC,并移动lib32和lib64目录到<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版.工作正常.
浙公网安备 33010602011771号