• ベストアンサー

LinuxとC言語

Linux初心者です。LinuxとC言語についていくつか質問 させていただきます。 1.どんなリナックスにもgccは入っているのでしょうか? 2.Linuxには色んな種類のものがありますが、 全てのLinuxでコンパイルや動作は可能でしょうか? 宜しくお願いします。

noname#142813
noname#142813

質問者が選んだベストアンサー

  • ベストアンサー
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>1.どんなリナックスにもgccは入っているのでしょうか? Linux と gcc は別のソフトウェアだから、 Linux ディストリビューションによってはデフォルトの インストールでは gcc が含まれないケースもある。 でも無ければインストールすればいいだけだよね。 大抵はインストールオプションで Development みたいなのを 選択すればインストールされる。 >2.Linuxには色んな種類のものがありますが、 >全てのLinuxでコンパイルや動作は可能でしょうか? 質問の意図が不明確ですね。 gcc がインストールされてライブラリも普通にインストールされていれば コンパイルして実行すること自体はどんなディストリビューションでも可能。 ある特定のソースコードが全ての Linux ディストリビューションでコンパイル できるかと問われれば、そのソース次第ということです。 有名なアプリケーションは十分ポータビリティに注意して 作られていることが多いので、コンパイルできないということは滅多にありません。 もちろん、ディストリビューション固有のバイナリパッケージとして 提供されているものは、その特定ディストリビューションでしか動作しません。 Linux はディストリビューション毎に独自のパッケージ管理方法を採用しているので、 例えば Fedora なら、rpm 形式で既に誰かが提供しているアプリケーションは 簡単にインストールできますが、それ以外のものをパッケージ管理下に置こうと すると結構面倒臭いことになります。

その他の回答 (2)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

>1.どんなリナックスにもgccは入っているのでしょうか? 商用Linuxの評価用のトライアル版には通常入っていません。 その他では初期インストール時に指定しないとインストール されない物も一部にありますが、通常は用意されていて必要 に応じて追加インストールが可能です。 >2.Linuxには色んな種類のものがありますが、 >全てのLinuxでコンパイルや動作は可能でしょうか? 他のディストリビューションのソースファイルを持ってきて 再コンパイルして動作させられるか? という意味でなら、gcc や Kernel のバージョンの違い等に よっては、一部に修正を必要とする場合があります。

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

A1. ディストリビューションに因ります。 厳密に言えば"Linux"とはカーネル部分だけであり、他のライブラリやアプリケーションは各ディストリビューションが独自の判断でつけているものです。 なので、必ず入っているという保証はありません。 ただ、私の乏しい経験ではPC向けのディストリビューションでは必ず(といっていいほど)付属してきました。 A2. 環境が正しく適合していれば再コンパイルは基本的に可能なはずです。 (GPLだからソースが付属してきているはず)

関連するQ&A

  • C言語で作ったらWindowsでもMacでもLinuxでも動くんですか?

    Linuxでgccを使ってC言語を勉強してます。 Linuxのgccでコンパイルして作ったプログラムはWindowsでもMacでも動くんでしょうか? 逆にWindowsで作ったのはとか、Macで作ったのは他のOSで動くんだろうかと疑問で・・・。 教えてください!!

  • Vine Linux 2.6 でC言語で開発

    Vine Linux 2.6をインストールの種類でワークステイションを選択してインストールしました。 が、自作したC言語のプログラムをコンパイルしようと思いましたが、「gcc」コマンドが無いようです。 ワークステイションを選択してインストールするとgccはインストールされないのでしょうか? また、インストールされていなかったとしたらインストール方法を教えてください。

  • LinuxにてC言語を作成が、変換が出来ません。

    LinuxにてC言語を作成が、変換が出来ません。 gccにてコンパイルを行っていますが、半角カナから全角カナの変換が上手く出来ません。 StrConvみたいな関数があれば教えて下さい。 宜しくお願いします。

  • unixはC言語で書かれている?不思議?

    unix、linuxはC言語で書かれている、と聞いたのですが、不思議なことがあります。 そもそもC言語を書くためにはviとか必要ですしコンパイルするにもccとかgccとか必要ですよね? viとかccとかを使うには、また、unixが必要な気がします。どうやってunixを作ることができたのでしょうか? ニワトリと卵みたいですごく不思議なのですが・・ linuxのところで http://virus.okwave.jp/kotaeru.php3?q=2246024 のような質問をしているうちに不思議に思ってきました。

  • C言語について教えていただきたいです

    以下3種類のファイルがあり(リンクをご参照いただきたいです)、 A.c ( http://denny-hrj.com/a.c ) B.c( http://denny-hrj.com/b.c ) X.h ( http://denny-hrj.com/x.h ) A.cを書き換えて、追加を可能にし gcc -o D.out B.c D.c でコンパイル可能に、 さらに、D.cを書き換え、追加と削除を可能にし、 gcc -o E.out B.c E.c でコンパイル可能にする。 これらはどのように書き換えればいいでしょうか? 必要に応じてB.cを書き換える場合、どのように書き換えるべきかもご教授いただきたく存じます。 まだC言語の初心者で理解が浅く、私自身のレベルはそこまで達していないのですが、 期限が近づいてきてしまいました。 どうか、お願いいたします。

  • C言語 Linux Mac

    Mac Linux C言語 MacでLinuxをダウンロードするにはどうすれば良いのでしょうか? (種類が多くて困っています) 今日C言語を主に扱う会社に面接に行ってきて、帰り際に「Linux上で動くC言語のMACアドレスを検知するプログラムを一週間後までに作ってきてくれ」と頼まれました。 OSとしてはMacを使っていて、まずはLinuxをダウンロードしたいのですが種類が多すぎて選べません。 Linux上で動くC言語のプログラムを作りたい場合どのLinuxの種類をダウンロードするのが適切でしょうか? Web系(HTML,CSS,JavaScript)の職業訓練を半年受けていたので本当に基本的な事はわかってると思うのですが VirtualBoxでLinuxをダウンロードする際「Download VirtualBox for Linux Hosts」まで行くのはわかるのですが、その後種類が多く困っています。 どれをダウンロードするのが適切でしょうか?(画像の画面の場合です。)

  • WindowsでのC と LinuxでのC の違いについて

    これから、Linux OSでC言語のプログラミングを行うことになりました。ディストリビューションはVine Linux 3.2 を利用します。 開発方法としては、Windows Xp 上でgccを利用できるIDE(Dev-C++ 4.9.9.2を利用します)で開発を行い(テスト的にコンパイル)、できたソースをLinux上でコンパイル・リンクするという方法で行おうと考えています。 そこで、疑問があります。 ANSIライブラリの中にはシステムコールを実行するものがあると思います。システムコールはOSの一部の機能ということですので、WindowsとLinuxとでは当然その機能は違ってくると思います。 つまり、WindowsでANSIライブラリを利用して実装したプログラム(コンパイルもとおる)がLinux上で正常に機能するのか(そもそもコンパイルがとおるか)がわかりません。 どなたかご教授いただけましたら幸いです。 宜しくお願いします。

  • MacでのC言語について

    MacでC言語の環境を作ろうと思いXcodeをインストールしたのですが、コンパイルができません。 取り敢えずhello.cを作り、ターミナルを起動してディレクトリを移動しgcc hello.cと入力したのですが「-bash: gcc: command not found」と表示されてしまいます。 OSはLionです。 プログラミング初心者なので説明不足かもしれませんが分かる方どうか教えて下さい。

  • c言語について、質問します。

    c言語について、質問します。 環境設定を行いましたが、 コンパイルが何度、やってもできません。 c:?source>gcc -o sample sample.c と入力すると、 gcc:installation problem, cannot exec cc1':No such file or directory とでます。 成功したら、このような文字はでないとかいてあるのですが、どうすればよろしいですか?

  • Linux C言語開発 インクルードについて

    C言語開発初心者です。 LinuxでC言語開発をするにあたり、どのディストリビューションにしても インクルードしたいヘッダファイルが既定の場所には無く別の場所にカーネルのバージョンごとに保存されているようなのです。 このままコンパイルを試みるとインクルードファイルが存在しませんとエラーが返ります。 既定のヘッダファイルの保存場所にはC言語開発に必要なヘッダファイルが存在しませんので、この問題を皆さんはどのように解決しておりますか?どなたかご教授お願いいたします。 C言語でincludeする場所は<>でくくった場合 /usr/include/ 以下を参照する設定になっていると思うのですが、 例えばmodule.h やinit.h などの開発用ヘッダファイル?を探してみると /usr/include/linux/ には存在せず、 find / -name module.h と入力して検索してみると /usr/src/kernels/2.6.32-131.21.1.el6.i686/include/linux/module.h と別な場所にあります。 ネットであれやこれや調べてみても コンパイル時にincludeの参照先を指定する方法はあるようなのですが、 コンパイルする度にいちいち指定するのは面倒だと思います。(gcc -I) かといって開発しているカレントディレクトリにヘッダファイルをコピーしても includeするヘッダファイルが別のヘッダファイルを参照することもあるようなので、 あまり現実的ではないようです。 一番安全な方法としてincludeする参照先が環境変数か何かで追加及び変更するのではないかと思います。 試してみましたがenvコマンドで表示されるOSの環境変数とは別のもののようなのです。 環境変数 C_INCLUDE_PATH とはどのようにして変更・追加するのでしょう? また、上記の方法以外で良い方法がございましたらそれでもかまいません。 よろしくお願いいたします。 開発環境 ・OS centos6 ・以下のパッケージはインストール済み kernel-headers-2.6.32-131.21.1.el6.i686 kernel-devel-2.6.32-131.21.1.el6.i686 make-3.81-19.el6.i686 gcc-4.4.5-6.el6.i686 ・GUI開発環境 netbeans ・uname -r 実行結果 2.6.32-131.21.1.el6.i686