回答編集履歴

3

optionミス修正

2020/10/22 01:42

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  docker run --rm -it \
18
18
 
19
- --mount source=${env:PWD},target=/work \
19
+ --mount type=bind,source=$PWD,target=/work \
20
20
 
21
21
  -w /work golang:alpine \
22
22
 

2

補足追記

2020/10/22 01:42

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- gccツールチェインのソースを持ってきてクロスビルド用にgcc(MinGW-w64)を使ってビルドする必要がありますが、
5
+ gccツールチェインのソースを持ってきてクロスビルド用にgcc(MinGW-w64)を使ってビルドする必要がありますが、それはかなりハードルが高く時間も必要ですし、依存するライブラリもソースからビルドが必要になります。
6
-
7
- それはかなりハードルが高く時間も必要ですし、依存するライブラリもソースからビルドが必要になります。
8
6
 
9
7
 
10
8
 
@@ -18,10 +16,16 @@
18
16
 
19
17
  docker run --rm -it \
20
18
 
21
- --mount type=bind,source=${PWD},target=/work \
19
+ --mount source=${env:PWD},target=/work \
22
20
 
23
21
  -w /work golang:alpine \
24
22
 
25
- go build -a -tags netgo -installsuffix netgo -o app
23
+ go build -o app
26
24
 
27
25
  ```
26
+
27
+
28
+
29
+ ただし、上記はCGOが絡んでいる場合、alpine-linuxでしか動かないバイナリになってしまいます。
30
+
31
+ 動かしたいlinux-distributionに合わせたイメージでビルドするように調整してください。

1

補足

2020/10/22 01:27

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -1,3 +1,27 @@
1
1
  gcc(MinGW-w64)を使ってWindows以外のバイナリを出力することはできません。
2
2
 
3
+
4
+
5
+ gccツールチェインのソースを持ってきてクロスビルド用にgcc(MinGW-w64)を使ってビルドする必要がありますが、
6
+
7
+ それはかなりハードルが高く時間も必要ですし、依存するライブラリもソースからビルドが必要になります。
8
+
9
+
10
+
3
11
  いまからならWSL2かDocker(Windows Home Editionの場合はWSL2が必要)を使うのがお勧めです!
12
+
13
+
14
+
15
+ 例:
16
+
17
+ ```shell
18
+
19
+ docker run --rm -it \
20
+
21
+ --mount type=bind,source=${PWD},target=/work \
22
+
23
+ -w /work golang:alpine \
24
+
25
+ go build -a -tags netgo -installsuffix netgo -o app
26
+
27
+ ```