質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • Linux

    3377questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Windows 10

    814questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Go

    443questions

    Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Windowsの開発環境でビルドしたバイナリファイルがlinux環境で動かない

受付中

回答 1

投稿

  • 評価
  • クリップ 2
  • VIEW 547

tomagurosu

score 13

windows環境のgoでlinux用にコンパイルしたのですが
以下のエラーメッセージが表示され実行されません。
"cannot execute binary file"
以前クロスコンパイルをした時には問題なく実行できるファイルをビルドできたのですが
なぜか再び行うと実行できないファイルがビルドされてしまいます
osの情報は間違いのないことを確認済みです。
下記はgo envの結果です、またgoのバージョンは1.9.5になります。
どなたかご教授お願いします。

set GOARCH=amd64
set GOBIN=
set GOEXE=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=linux
set GOPATH=C:\Users\...\go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-fPIC -m64 -fmessage-length=0
set CXX=g++
set CGO_ENABLED=0
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

こちらが参考になります
ttps://qiita.com/Jxck_/items/02185f51162e92759ebe

あと

linux用にコンパイル

とありますが、相手先も64bit環境でしょうか?

もしかすると
上の設定でlinuxの「64bit環境」か「32bit環境」のフラグを設定する必要があるかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/18 12:59

    参考URLありがとうございます。
    64bitでしたのでGOARCH=amd64の用に設定しているのですが
    ビルドしたバイナリファイルは実行されないようです。

    キャンセル

  • 2018/04/18 13:52

    「ビルドしたバイナリファイルは実行されない」
    そうですか。

    1.これはWin環境でのエラーですか? それともLinux 64bitでの実行結果でしょうか? 

    2.(もしLinux上だとして)もしかしてバイナリファイルの実行権-xが設定されていない、とか。
    念のためls -lでモードを確認してください。

    キャンセル

  • 2018/04/18 14:53 編集

    1 GOOS=linux,GOARCH=amd64でビルド後のバイナリファイルを
      linux64bit環境での実行した結果です。
    2 確認結果”-rwxrwxr-x” 全対象に実行権限を設定しています。

    キャンセル

  • 2018/04/18 15:23

    ちょっと手元に検索、実行環境がないので正しく回答できませんが。

    1.「set CGO_ENABLED=0」 これは問題ないですか? 
    もし「0」がFalseの意味?でしたら、この設定は無視され、実行されないことになります。

    2.setで設定している他のオプション、これに値がセットされていないので、これらの意味、働きを1つ1つ確認し、目的のクロスコンパイル、(必要な)ライブラリのリンクができているか
    確認してみてください。

    3.Go自体をダウングレードして、違うバージョンでテスト、検証してみる。
    これくらいしか、思い浮かばないですね。

    キャンセル

  • 2018/04/18 16:07

    いくつかの解決案の提示ありがとうございます。
    順を追って試してみたいと思います

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    historyコマンド のログにデバイスファイル名を追記したい

    historyコマンドのログの中に"デバイスファイル名"を入れることは出来ないでしょうか? 複数ターミナルで操作すると、historyコマンドのログは端末ログアウトした時にログが

  • 解決済

    Linux コマンドを同時に実行

    Linuxにてcdしたあとlsしたりcatしたりしたいフォルダがあるのですが一回のテラタームへのペーストでcdとls両方を実行させることは可能でしょうか? 現状はエクセルで今日の

  • 解決済

    特定の文字を含むファイルを抽出する

    現在、特定のファイル配下にあるファイルの中でredirect::responseという記載があるファイルを抽出したいと考えております。 その際に 色々調べた結果、下記を試し

  • 解決済

    find 指定したディレクトリ除いて表示

    find /aaa/bbb/ccc |grep -v -f test.txt test.txt 内容↓ 45683 2016-01-01 13:30 /aaa/bbb/cc

  • 解決済

    さくら共有サーバーでpear listしたい

    さくらインターネットの共有サーバーを利用しています。共有サーバーにはもともと php のライブラリである pear がユーザーフォルダより上に入っているのですが、新しいパッケージを

  • 解決済

    test.sh実行 パス取得

    どこからtest.shを実行しても結果に問題が出ないように、実行したらtest.shがあるパスを取得してそこのパスから相対パスで処理を行っていきたいのですが、実行しているファイルの

  • 解決済

    tarファイルの作成パスの変更について

    tarコマンドで、下記のようにlog配下を固めております。 cd /home/myhost/work/ work配下にlogディレクトリがあります。 $tar cvf 201

  • 解決済

    sedコマンドの置換条件の書き方が複雑で読みとけません

    前提・実現したいこと 偶然見つけたシェルスクリプトに含まれていたコード(一行) 条件の内容が知りたい。 発生している問題・エラーメッセージ コード後半のsed以降の内容

同じタグがついた質問を見る

  • Linux

    3377questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Windows 10

    814questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Go

    443questions

    Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。