LoginSignup
0
0

More than 1 year has passed since last update.

春から大学生(情報・工学)の方へ~プログラミング入門7~(C言語/C++開発キットMinGWの中身を覗いてみた)

Last updated at Posted at 2022-03-27

第1回

MinGWとは?

C言語で書いたプログラムを機械語に翻訳するコンパイラや文法の間違いを探す「デバッガ」、プログラム中で読み込んで使う「ヘッダファイル」などをまとめたもの。

インストール場所(Windows)

MinGWを単体でインストールした場合、基本的にはPC//ローカルディスクC//Program Filesなど。Eclipse Pleiadesでまとめてインストールした場合、PC//ローカルディスクC//pleiades~~//eclipse。

binフォルダ

binはbinary(2進数の)の略。つまり、機械語で書かれたファイルを格納している。具体的には、.exe(アプリケーション)、.dll(dynamic link library、動的ライブラリ)など。
c++.exe
g++.exe(GNU C++ compiler、C言語もC++も両方C++言語としてコンパイルする)
gcc.exe(GNU C compiler、C言語、C++コンパイラ)
gdb.exe(the GNU project debugger、プログラムの文法間違いを見つけてくれる)
などなど。
https://kamocyc.hatenablog.com/entry/2020/01/23/075331

etcフォルダ

etc(エトセトラかな?)
gdbinitという名前のファイルが1つだけ。

includeフォルダ

基本的には.hという拡張子のファイルが8つくらい入っていると思います。プログラム中で読み込んで(引用して)使うものですが、これを「ヘッダファイル」と言います。
エディタなどで中身を開いてみると、英語で注意書きがずらっと出てきます。
その下に#ifdefとか#defineとか#endifとか書いてあると思います。「関数のプロトタイプ宣言」「構造体」や「定数」の宣言などが並んでいます。これらの意味については授業で習うと思いますが、興味があれば調べてみてください。
また、CG用のヘッダなど初めから含まれていないヘッダファイルは、後から追加することもできます。
https://xtech.nikkei.com/it/article/COLUMN/20100219/344843/

libフォルダ

dllやlib、aやo、hなど様々なファイルが入っています。dllやhについては上で出てきたかと思います。dllとlibは機械語で書かれており、プログラム中で使う「関数」の実体が入っています。hファイルはその使い方と使用宣言です。プログラムの上のほうの行でhファイルを読み込むことで、その中に書かれている関数の「しよう(仕様/使用)」を宣言します(=プロトタイプ宣言)。その後、プログラム中で実際に関数が使用される際にはdllやlibなどを参照するわけです。dllはコンパイルが終わって作成されたexeファイルとともに実行されますが(外付け)、libはexeファイルが作成される際に中に取り込まれます(一体化する)。aファイルとoファイル(オブジェクトファイル)はコンパイル(の途中)で生成されるものです。授業で詳しくやるはず。
dllはLinuxだとsoファイルに相当します。

libexecフォルダ

exeやa,dll,sh(シェルスクリプト)が入っている。メインではなさそう?

licensesフォルダ

利用規約みたいなのが入ってる

optフォルダ

bin, include, info, lib, share, ssl(=Secure Socket Layer?)と分かれる。
Secure Socket Layer=通信の暗号化の仕組み

shareフォルダ

.py(Pythonのプログラム)や.xml(データ保持のファイル)を含む。デバッガ関連のプログラムがPythonで書かれているということでしょうか?

x86_64-w64-mingw32

こちらにもbin, include, libフォルダが含まれていました。

次回

次回は、Java Development Kitを覗いてみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0