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

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

新規登録して質問してみよう
ただいま回答率
85.48%
GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Linux

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

3回答

5338閲覧

gccにて作成したファイルはどういった環境で動作するのですか?

yukkuri_55

総合スコア240

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Linux

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

2クリップ

投稿2019/09/02 08:11

MinGW Installer を使って Windows 環境に gcc をインストールしました。
gcc のバージョンは8.2.0です。
このgccでコンパイルして作成された実行ファイルの実行できる
環境はどのようになっているのでしょうか?
Windows でコンパイルしたから Windowsのみ実行できる? win10? win8.1? win7?
WindowsだからといってどのOSになるのでしょうか?
gcc だから Linux でも動作する? Debian? Ubuntu? CentOS?
ディストリビューションごとに違う?
違うOSだとソースコードを再利用してgccにて
再コンパイルしなおす必要があるのですか?
Macは動く?
などなど
gccでコンパイルしたファイルは、どういう環境で動作するのでしょうか?

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2019/09/02 08:17

> MinGW Installer を使って Windows 環境に gcc をインストールしました。 ここまでしておいて分からないというのは、一体、何を参考にしてインストールしたのでしょうか?
yukkuri_55

2019/09/02 11:41

申し訳ないです。おっしゃる意味がよくわかりません。
guest

回答3

0

ベストアンサー

実行ファイルに環境互換性はありません。
mingw Linux MacOS それぞれ。
それぞれのOSの機能を呼びますが、OSのAPIは統一化されてないので。

gccはコンパイル環境と異なるターゲット環境で動く実行ファイルを作ることもできます。
Linuxだと(ディストリビューションによってちがうかもですが)、mingw64-gccパッケージをインストールして、

Bash

1mingw64-make foo

で、foo.cからWindows64bit環境で動くfooができるので、Windows環境にコピーしてfoo.exeにリネームすれば動きます。Linuxに依存する機能を使ってなければですが。

mingw64用の実行ファイルは、(おそらくXP以降の)64bitWindowsで動くと思います。これも、Windows10以降だけのWindowsAPI機能を使ってなければですが。

投稿2019/09/02 08:33

otn

総合スコア84529

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri_55

2019/09/02 11:36

環境互換性はないのですね、gccにもいくつかバージョンがあるのですね、 参考にないりました。
guest

0

基本的にコンパイルした環境で動きます。
Windows でコンパイルしたら Windows で。
Mac や Linux では動きません。
それぞれの環境でコンパイルし直す必要があります。

OS のバージョンには依存する場合もありますし、
そうじゃない場合もあります。
それはプログラムによります。

投稿2019/09/02 08:17

poliphilus

総合スコア150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri_55

2019/09/02 11:39

コンパイルした環境が大事なのですね、ソースコードに移植性があれば それぞれの環境でコンパイルすればいいのですね、 参考になりました。
guest

0

このgccでコンパイルして作成された実行ファイルの実行できる
環境はどのようになっているのでしょうか?

「環境はどのようになっているのでしょうか?」という質問の意味が不明ですが、とりあえず、コンパイルのみでは実行できません。リンクが必須になります。リンクに関しては調べてみてください。

Windows でコンパイルしたから Windowsのみ実行できる? win10? win8.1? win7?

 基本は、コンパイル・リンクした環境です。同じアーキテクチャで、同じライブラリがあれば動きます。

gcc だから Linux でも動作する? Debian? Ubuntu? CentOS?

Windows と同様、同じアーキテクチャで、必要とするライブラリが存在すれば、動きます。

以下、同じ。
確実に動作させるには、それぞれの環境で、コンパイル・リンクするのが安全です。

投稿2019/09/02 08:19

showkit

総合スコア1638

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri_55

2019/09/02 11:37

各環境に合わせたライブラリが必要なのですね 参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問