すいません。ネタぱくってます
すいません。なぞり記事となります。
前から気になっていた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