sh 用于Linux的Windows子系统的Crystal编译器包装器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于Linux的Windows子系统的Crystal编译器包装器相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env bash

# MSVC 2017
# MSVC_BUILD_TOOLS="C:\\Program^ Files^ ^(x86^)\\Microsoft^ Visual^ Studio\\2017\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsall.bat"

# MSVC 2015
MSVC_BUILD_TOOLS="C:\\Program^ Files^ ^(x86^)\\Microsoft^ Visual^ C++^ Build^ Tools\\vcbuildtools.bat"

set -euo pipefail

# Catching the result of the program does not play nice with the progress output. Otherwise we could use this:
# linker_command=$(bin/crystal build --cross-compile --target x86_64-unknown-windows-msvc "${@}")
# name=$(echo $linker_command | sed -E 's/.*\/Fe([^ "]+).*/\1/')

# Cross-compile Crystal program
bin/crystal build --progress --cross-compile --target x86_64-unknown-windows-msvc "${@}"

name=$(basename "${1%.*}")
linker_command="cl ${name}.o /Fe${name} pcre.lib gc.lib libcmt.lib"

# user32.lib should not be required but libgc expects it
linker_command="${linker_command} user32.lib"

echo

# Run the msvc build tools to link final executable through Windows interoperability
cmd.exe /S /c "${MSVC_BUILD_TOOLS} amd64 && cd /D %CD% && ${linker_command}"

echo

echo "./${name}.exe"
# Run the compiled executable through Windows interoperability
./${name}.exe

以上是关于sh 用于Linux的Windows子系统的Crystal编译器包装器的主要内容,如果未能解决你的问题,请参考以下文章

sh 在Linux和WSL上安装Go 1.8.3的脚本(适用于Linux的Windows子系统)

sh 您的Windows系统驱动器出现在Linux中的位置

sh 在双引导系统中创建windows和linux android SDK的常用目录中的符号链接。

linux sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory

使用windows系统编写shell代码,在linux执行后的报错

Houdini技术体系 过程化地形系统:Far Cry5的植被系统分析