Posted at

Nimクロスコンパイルのやり方(Linux->Windows版)

More than 1 year has passed since last update.


すいません。ネタぱくってます

すいません。なぞり記事となります。

前から気になっていたNimのLinuxでのWindows用バイナリのクロスコンパイル方法を調べていたのですが、

@hatchetさんの書かれた記事Nimクロスコンパイルのやり方を参考に調べてみた結果となります。

環境は、CentOS7です。


コンパイラ入れます

Windows用クロスコンパイラ(MinGW)を導入します。

$ sudo yum install mingw64-binutils mingw64-gcc mingw64-gcc-c++ 


やる気のないnimファイルを作成


hello.nim

echo "hello nim"



コンパイラコンフィグファイルを作成


hello.nim.cfg

# mingw用

amd64.windows.gcc.path = "/usr/bin/"
amd64.windows.gcc.exe = "x86_64-w64-mingw32-gcc"
amd64.windows.gcc.linkerexe = "x86_64-w64-mingw32-gcc"
amd64.windows.gcc.options.linker = "" # <--- これを空にしないとリンカエラーが出てしまいました

# linux用(なぜか入れないと動きませんでした)
amd64.linux.gcc.path = "/usr/bin/"
amd64.linux.gcc.exe = "gcc"
amd64.linux.gcc.linkerexe = "gcc"



 おもむろにコンパイル


  • Windows向けコンパイル

$ nim -c --os:windows hello.nim


  • Linux向けコンパイル

$ nim -c --os:linux hello.nim


コンパイル結果

$ ls -la      

合計 452K
drwxr-xr-x 3 xxxx xxxx 140 12月 22 18:11 .
drwxrwxrwt 16 root root 800 12月 22 16:31 ..
-rwxr-xr-x 1 xxxx xxxx 181K 12月 22 18:11 hello <--- Linux用バイナリ
-rwxr-xr-x 1 xxxx xxxx 260K 12月 22 18:11 hello.exe <--- Windows用バイナリ
-rw-r--r-- 1 xxxx xxxx 23 12月 22 16:32 hello.nim
-rw-r--r-- 1 xxxx xxxx 279 12月 22 18:01 hello.nim.cfg
drwxr-xr-x 2 xxxx xxxx 160 12月 22 18:11 nimcache