• ベストアンサー

質問

Solarisで開発をしているのですが、作成した実行ファイルがどのようなソースコード(具体的には、ソースコードの作成日付など)でメイクされたかを知る方法はないのでしょうか?

noname#143577
noname#143577

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

  • ベストアンサー
回答No.1

Solarisに限らず、Unix全般で使っている方法としてidentコマンドを使うという方法があります。 各ソースファイルに次のstatic変数を埋め込んでおくと、ident コマンド名としたときにその一覧が表示されるというものです。 static char const rcsid[] = "$Id: f.c,v 1.5.56.1.6.1 2010/12/21 17:09:25 kensmith Exp $"; 各バージョン管理システムにはバージョン情報などをファイル上に出力するための仕組みがあるのでそれをrcsid[] として設定すると、identで見えるようになるというわけです。 例えば、 % ident /bin/ls /bin/ls: $FreeBSD: src/lib/csu/amd64/crti.S,v 1.7.30.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/amd64/crtn.S,v 1.6.30.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/common/crtbrand.c,v 1.6.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/amd64/crt1.c,v 1.15.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/cmp.c,v 1.18.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/ls.c,v 1.86.2.4.4.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/print.c,v 1.78.2.3.4.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/util.c,v 1.41.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $ のような感じで。 この設定例では$Id$というCVSの例をFreeBSDで拡張した$FreeBSD$を出していますが、subversionやgitなど他のバージョン管理ステムでも設定すると$Id$を展開するようになります。

noname#143577
質問者

お礼

回答ありがとうございました

関連するQ&A

  • タスクバーにDelphiアプリのアイコンを重ねて表示する方法

    WindowsXP、Delphi2009で開発しています。 現状、複数の実行ファイルで構成されたシステムを開発中ですが、呼出元の実行ファイルから子の実行ファイルを呼び出すと、タスクバーにアイコンが増え続けてしまうため、重ねて表示したいと考えています。 どなたかそれを実現する方法、またはサンプルソースコードをご存知ないでしょうか。 よろしくお願い致します。

  • アプリケーション作成での質問

     現在あるソフトを作成しています。  なかなか専門的な用語が分からず、インターネットでどう検索してよいかわからなかったのでこちらで質問しました。 開発環境はWindows7、VisualStudioを用い、C#言語で開発しています。  今までのプログラムの実行方法は、統合開発環境を経由して実行したことしか経験がありません。ビルドした時に作成される「.exe」ファイルをクリックして実行したことはありますが、基本的に統合開発環境の「実行」でプログラムを実行しています。  そこで、1つ目の質問なのですが自分のプログラムを「アプリケーション」として動かすにはどうすれば良いのでしょうか?  普通ソフトはアプリケーションとして存在していて、それをダブルクリックなりタスクバーから選択するなりして実行します。そのようなアプリケーションとして自分のプログラムを実行するにはどうすれば良いのでしょうか?ビルドした時に作成される「.exe」ファイルをそのままアプリのように使っていると「.exe」ファイルのみを別の場所に移した時に参照しているファイルのパスがおかしくなってしまいます。今のところ「パッケージ化」というものをしたらいいのかな?というところまでは分かってきているのですが、この解釈が正しいのかどうかあまり自信がないです。  2つ目の質問は、Wordのように書類を扱うアプリケーションについてです。自分の解釈としては、Wordの書類をダブルクリックすると、拡張子を見ることで「Wordを用いる」という情報がわかり、OSがWordを実行する。Word側はどのファイルが開かれたのか(パスなのかな?)を受け取り、そのファイルを解析し、画面に書類を表示する。このような流れなのだろうと思っています。  しかし、このような流れの実行方法を自分で作成するにはどのようなことをしなくてはならないのでしょうか?また、このような流れで実行できるアプリケーションを何と呼ぶのでしょうか?用語がわからず調べようがない状態なんです(>_<)  例えば「~.bir」というファイルの中に日付を入力します。 そして、そのファイルをダブルクリックするとアプリケーションが実行されて、ファイルの中の日付が画面に表示される。このようなアプリケーションを試しに作ってみたいのですが...  自分の想像では... 「.bir」はどのアプリケーションの拡張子なのかをOS側に設定しておく必要がある。 アプリケーション側で「.bir」ファイルをダブルクリックした時にパスを受け取る仕組みを作っておく必要がある。  この2つがハードルなのかなぁと思っているのですがよくわからないのが現状です。  なお、現在作っているソフトは自分のPCだけで動けば良いものではなく、他のパソコンにも配布できるような形にしたいと思っています。インストーラなんかを作る形になるのでしょうがそこらへんも含めて全く知識がない状態です。  あまり用語を知らないので分かり易く説明できていないでしょうが回答お願いします。  長文失礼しました><

  • ソフトの開発言語を調べる方法

    ソフトウェアがどの言語で開発されているかを調べる方法はありますか。 有名なソフトとかならば、ネットとかで検索すればわかることも有ると思うのですが、 vectorとかでダウンロードできるような個人が作っているソフトなどの 開発言語を知る方法があれば教えてください。 あと、同じ意味の質問かもしれませんがソースコードからコンパイルした後の実行ファイルから、どのようなコンパイラが使われたのかを知る方法があれば教えてください。

  • Eclipseでのファイル読み込み方法。

    Eclipse3.0.1を使用しています。ソース・コードの新規作成方法はわかりましたが、この開発環境ソフトでは、他のたとえばWindows付属のメモ帳などでコーディングしたプログラム・コード(ファイル)を読み込むことはできるのでしょうか。もし可能であればその方法を教えて頂きたいのですが。初心者ですがよろしくお願い致します。

    • ベストアンサー
    • Java
  • 実行ファイルのコピー

    Solaris9のCでコンパイルした実行ファイルを FTPのアスキーモードでUSBメモリに取得し、 それを一旦Windowsに格納しました。 そのファイルをUSBメモリを通して、Solaris10にコピーし、 実行した所「プログラムファイル:実行できません」 のメッセージが出力されて実行できません。 1.一旦、Windowsに格納した事で、文字コード等の関係で  ファイルが壊れたりするのでしょうか? 2.solaris9からsolaris10で互換性が取れないのでしょうか? 3.それ以外の理由があるのでしょうか?

  • makefileの中のソースプログラム指定について

    プログラムをコンパイル・リンクして実行ファイルを作成するためのmakeの利用についてお尋ねします。mekefileを編集してmakeコマンドを投入すればあとは指示通りに実行ファイルを作成してくれるわけですが、ソースプログラムを指示するところではすべてのファイル名を記入する必要があるのでしょうか。それともワイルドカードというか、*.f90のようにフォルダ内のすべての.f90を対象にして処理するように指示できないでしょうか(途中で出力されるオブジェクトファイルもですが)。ソースファイルが小分けにして50個ぐらいあるのですが。よろしくお願いします。 Windows10上でのGnu make ver 4.1です。

  • マシンによってURLEncoder.encodeの結果が違う

    西巻と申します。よろしくお願いします。 JavaServletの開発を行っているのですがソースを コンパイルし、Aのマシンで実行したときと、Bのマシン で実行したときで結果が異なります。 具体的にはAのマシンでの URLEncoder.encode("ほげ")の結果が %82%D9%82%B0 となるのに対してBのマシンでは %3F%8F%AA%E3%3F%A1%EB となります。 原因についておわかりの方ご教授ください。 各マシンは A:Solaris7 B:Solaris2.6 でJDK1.2.2 JServ1.1.1 です

  • cshでmakeのようなファイルの時間を見るコマンド

    makeでは2つのファイルのタイムスタンプを比較して更新 されていたらコマンドを実行する 機能がありますが、こ のことをcshスクリプトで実行しようとした場合、何か良い 方法は有りませんでしょうか? 素直にmakeを使用すればよいのですが、既に環境がshell スクリプトベースで構築されてしまっており、 出来ればこれと親和性の良い方法で、多少場当たり的なのは認識しつつも、逃げたく思っています。 より具体的には2つのディレクトリ(CENTER directoryとwork directory)があり、ワークは各々が各人の都合でソースコードを変更します。 ある時点でCENTERディレクトリが更新された場合、その更新されたファイルだけをセンターディレクトリからワークディレクトリへコピーしてくる という事をしたいと思って います。 以上、よろしくお願い致します。

  • Solarisのlogファイルについて

    Solarisマシンで、ログファイルについて、よくやる方法として、 『"/var"ディレクトリ配下等に作成されるログファイルなど、 いくつかのファイルをサイクリックに使用するように 設定してある。』と聞いたんですが、 具体的にどこにどのような設定がされているのか 教えてもらえないでしょうか? (※Solaris自体にその機能があるであろう ということを前提に質問しているのですが…。)

  • Makeについての質問

    こんにちは、Makotoと申します。 AIX上でCの開発を行っているのですが、 各ディレクトリにMakeFileがあり、 コンパイルのたびに各ディレクトリに移動して Makeを行っているのですが、面倒になってきたので、 以下のような簡単なシェルを作成しました。 cd /目的のディレクトリ make depend make clean make 上記と同じ記述が続く.... 始めの内は、規模が小さかったのでよかったのですが、 新しいプログラムが増えるたびに、同じ記述をするのも あまりきれいではないのでMakeFileを検出して Makeを実行させるといったことはできるのでしょうか?