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
版.工作正常.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现