- ベストアンサー
フリーソフトについて
フリーソフトの作り方について調べたいのですが、なかなか情報がでてきません。こういったソフトはデスクトップアプリケーションと呼ぶのでしょうか? C言語を勉強してるのですが、どうもそちらにはインストールを必要とするソフトについて載っていないのです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
http://oshiete1.goo.ne.jp/qa4408518.html この質問も合わせての事だったのですね. ものすごく広い範囲をカバーする質問なので,回答が難しいですね. 基本的にはどんなソフトウェアも,あなたの言う「プログラミングの本」の 内容の延長上にあります. 複雑な構文解析ライブラリなども,細かく見ていけば,「ファイル入出力」や 「データの保持」,「文字列処理」,「四則演算」,「比較」,「条件分岐」, etc....,これらの「繰り返し」で出来ています. どんなプログラムを作るにしても,これらの要素は必ず使います. このあたりは本を三冊勉強したと言うことなのでマスターしたのだと思います. その次には, GUIウィンドウ(Linuxだと「X-Windowプログラミング」とかで検索)の 作り方だとか, OS依存のAPI(Application Programming Interface,たとえば画像を一発で読み込んで 配列に展開してくれる関数)の使い方だとか, 誰かが作った便利なライブラリ(関数)(画像処理だと「OpenCV」ライブラリだとか 数値計算だと「Octave」ライブラリだとか)の取り込み方だとか, の勉強に発展していけば良いと思います. (これらライブラリも実は,上記の基本的な機能の組み合わせだけで出来ています. ただし数千~数万行のプログラムになりますが) そういった知識を得ながら,目的とする理論・機能をプログラミング上でどう実現して ゆけばよいか,考えるべきです. (また,既存のソフトウェアがどうやって実現されているのか,理解していくべきです) 完全に無目的だと覚えるべき事が多すぎて(それこそ本数十~数百冊分になります)勉強しきれ ないので,まずはKURAを例に,機能がどのように実装されているのか考えていくのが 良いかもしれませんね.(ファイルを読み込んで配列に入れるにはどうするんだろう? その配列の中から特定の文字を抜き出すにはどうするんだろう?抜き出した文字列を 役割ごとに分類して保持しておくにはどういった変数や配列が必要なんだろう?etc) また,例としてあげて頂いたKURAの説明を見て,「インストールとか言ってファイルをいろんな 場所に配置したり設定をいじったりしているけれど,あれは何の意味があるんだ」と お思いかもしれません. あれは,どんな場所からでもコマンド一発で呼び出したり,いろんなところに配置してある いろんなプログラムから機能を呼び出したりするのに必要だからやっています. このあたりを理解するには,OSの知識が必要です. http://www.atmarkit.co.jp/flinux/index/indexfiles/theoryindex.html 道のりは長いですが,がんばってください.
その他の回答 (2)
- kirinoma
- ベストアンサー率53% (288/542)
とりあえずHelloWorldが出来るだけの知識・環境をお持ちであり, 環境がWindowsであると仮定して, 「猫でもわかるプログラミング」 http://homepage2.nifty.com/c_lang/ をおすすめさせて頂きます. 「C言語編」から順に追っていけば, 文字だけのプログラム, ウィンドウを使って何か表示させるプログラム, 一般的なアプリの様に「ファイル」などの共通メニュー 機能を使うプログラム, と作り方を理解していけます. なお,誤解があるようですが, ・exeファイルを持ってくるだけで使用できる ・インストーラーを使ってインストール作業が必要 上記の違いと,「GUIウィンドウを使うか否か」・「Windowsが共通で用意している複雑な機能を使うか否か」は全く別問題です.
お礼
ありがとうございます。osはUBUNTU Linuxを使用しています。 良い書籍などがありましたらお願いします。
- syatsoul
- ベストアンサー率36% (4/11)
フリーソフトと意味を取り違えているような気もします。 フリーソフトとは無料配布するソフトの事で中身のことではありません。 もし作ったソフトを配布したいのならコンパイルしたものを必要なファイルと一緒にzipなりlzhでアーカイブしてアップロードすればいいです
お礼
ご丁寧に回答していただき本当にありがとうございます。 サイトを見たのですが、確かに道のりはまだまだ長そうです。まぁじっくり学習していこうと思っています。 GUIウィンドウ、APIの知識、便利なライブラリ(関数)の取り込み方 既存のソフトウェアがどうやって実現されているのかの理解 OSの知識 一つ一つ分からないことをつぶしていこうと思います。 プログラミングを勉強したは良いが、次に何を学習したら良いのか分からなかったものですから本当に助かりました。 ありがとうございました。m(_ _)m