- ベストアンサー
HP-UXのプログラムをSolaris、RHELへ
有識者の方々のお知恵を拝借させて頂きたく、宜しくお願いいたします。 HP-UX上のプログラムがANSI/Cで作成されています。 それをSolaris、RHELに移行する互換コンパイラはあるのでしょうか。 もしくは移行するための代替策があれば、実際に行ったことのある方の知見をお教え頂ければ幸いです。 HP-UX上でSolaris、RHEL移行用にコンパイルをするという手立てがあるなら、そうした手もありかと思っています。 尚、当方では、Solaris、RHEL→HP-UXはHPを探し、日立やIBMでは移行サービスがあること、非互換検出ツールがあることは知り得ています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> HP-UX上のプログラムがANSI/Cで作成されています。 > それをSolaris、RHELに移行する互換コンパイラはあるのでしょうか。 本当にANSI/Cで書かれているソースコードなら多くのCコンパイラで再構築すれば使えると思いますよ。 SolarisやRHELならPOSIXまでならANSI/C以外でも互換性あるでしょうし。 HP固有のライブラリ関数使ってたりすれば、その部分で移植作業が必要な場合も考えられますが。 今時ANSI/Cに対応してないCコンパイラなんてほぼないですよ。 ANSI/Cは最も標準的なC言語の規格で、非常に多く(最近のコンパイラでは対応してないコンパイラを知らない)のCコンパイラで利用できますよ。 ※昔(ANSI規格以前)は標準的なK&R以外にも色々な方言がありました。WhiteSmithの様にK&Rと互換とした場合の権利的な心配からわざわざ標準とされるK&Rと関数名変えたりしてるCコンパイラすらありましたから。 ANSI C89/ISO C90は1989年・1990年に規格が発行された古い仕様なので、標準では改訂されたISO C99へ対応しているコンパイラもあります。(例えばGCCは標準ではC99。オプションを指定すればC89で使うことができます)
その他の回答 (2)
- foobar
- ベストアンサー率44% (1423/3185)
ANSI C準拠のソースがあるならターゲットのコンピュータ上で再コンパイルするのが最も楽かなと思います。 HP-UX上でバイナリまで作らないといけないとなると、gccを使ってクロスコンパイルする、というような事になりそうに思います。
お礼
SolarisもしくはRHEL上にソースを持っていき、コンパイルを試みる手が楽そうですね。gccあたりでそれが出来そうであることが分かりましたので、大変参考になりました。 ありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
ANSI C なら, 最悪 gcc でなんとかなるような気がするんだけど....
お礼
gccで出来る、というキーワードを望んでいたところがあったので、気持ちが楽になりました。参考になるご意見を頂き、ありがとうございました。
お礼
gccでコンパイル行うことが出来そうだということが分かりました。 実際に試してみて、修正箇所は出てくるとは思いますが、完璧な互換性は無いとも思っておりますので、そこは修正していくしかないと考えます。 御丁寧なご回答をして頂き、ありがとうございました。