スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告
AIXでPro*Cをコンパイル
AIX上でPRO*Cのプログラムを作成することになり打合せに行ってきた。
1~2時間程度かなぁなんて思いながら、開発内容なんかの打合せを終え
実際にAIX上で開発可能かどうか環境を確認することになった。

年末に電話をもらったときに操作を指示してサンプルをmakeしてもらったが
コンパイラが見つからないようなところで失敗していた。
ユーザーの環境設定とかパスの設定とか環境変数の設定とかが問題なのか、
そうだとすればまぁ予定通り2時間以内で帰れるかなどと考えていたが。。

oracleのprecomp/proc/demoにあるdemo_proc.mkでmakeしてみるとやはり
エラーになる。
中からoraxlcというスクリプトを呼び出しており、その中からxlcという
コンパイラを呼び出しているらしい。
しかし、そこに書かれたパスやそれらしいパスにはそんなプログラムは
入っていなかった。
ccはダミースクリプトに置き換えられていて、使えるのはgcc3.3.2だけ
だった。

ネットで調べてみると以下のページに書かれているコンパイラが必要
そうだがvacもVisualAge C++も入っちゃいない。
http://www.oracle.co.jp/products/system/o9/uv920/index.html#ibm5l
ちなみにVACの値段を調べたら30万円程度。結構しますね。

でもほんとにgccじゃだめなのか?ってことで調査開始。
とにかくmakeしてエラーになったところを潰していくことに。
コンパイラはgccを使うようにして、
64bit用のオプションの指定の仕方を変えて
オブジェクトファイルはできたけど、リンクしようとすると失敗する。
またまたネットで調べてみるとgccはspark用にすれば64bitコードを
吐くらしいが、それってどうなの?というわけでちょっと断念。

ん?じゃ32bitコードにしちゃえばいいのか?
と、よく見るとサンプルフォルダにはdemo_proc32.mkがあるじゃないですか。
それなら簡単ってことでまたまたコンパイラ指定をgccにしてから
make!
おーーーー、無事実行ファイルができました。

その後実行したときにTNSとかのOracleクライアントの設定で悩みましたが
無事動作することを確認できましたが、
結局打合せも含めて7時間くらいかかってしまいました。。

というわけで来週くらいから実際に開発を行う予定。

その前に今抱えている仕事を終わらせないと。
スポンサーサイト

テーマ:ソフトウェア開発 - ジャンル:コンピュータ

【2008/01/08 14:56】 | Pro*C | トラックバック(0) | コメント(0)
pro*c
こんにちは。

今日はpro*cと格闘していました。

proc iname=foo.pc oname=foo.pcc

とかするといきなり

Segmentation fault (core dumped)

・・・そりゃないでしょ(--;

どこがどう悪いとか言ってくれっ!!
と、#if 0 ~ #endifで範囲を絞り込みながら、
エラー箇所の特定調査。

そして戦うこと30分。

原因はincludeファイル内で宣言してあった変数名と
プログラム中でdefineしたマクロ名が衝突したためでした。

そんだけ?
そんなすぐコアダンプするほどのものじゃないでしょ!?

まったく。

疲れた。

仕事が進まない(T-T)
【2005/02/28 14:40】 | Pro*C | トラックバック(0) | コメント(0)
mallocとfree
恥ずかしながら、はまりました。

この前作ったTemplateライブラリ、実際のテンプレートとなるHTMLファイルを読ませたら何回やってもmallocとかfreeのところで落ちる。
gdbでデバッグするとchunk_allocとかchunk_freeでsegmentation fault。
渡しているアドレスはあってるし、サイズが大きすぎるわけでもないし。
PlamoLinux2.1.5 karnel2.2.18
カーネルのソースまで落としてきて調べたけどわかりませんでした(;-;)

落ちるのは、テンプレートを解析してて一時的に文字列バッファを
確保するとき。chunkで落ちてるってことは、どっかで
メモリがはみ出してるんだろうから、あらかじめ固定で大きめのバッファを
もっとけばいいかなという安易な方法を試してみたら解決できました(^^;

でも、mallocに渡せるのはsize_tで、ヘッダを調べると
unsigned intみたいだから4Gくらいは大丈夫そうなんだけど。
実際のテンプレートっていったって、所詮HTML。
せいぜい数十KB程度で、それより大きなバッファなんて要求しないのに。
おかしい。

とりあえず動いたけど気に入ってません。
でも時間がないのでとりあえず保留。
【2005/02/26 04:48】 | Pro*C | トラックバック(0) | コメント(0)
C言語用のHTML::Template
お久しぶりです。
誰も見てないと思いますし、私も見てませんが
ちょっとネタができたので書きに来ました。

最近、ここの社長が面白いんで応援してます。
コンピュータ関係の仕事をしてるということで
引き合いに出されて「君も頑張れ」みたいに
言われることがあるんですが、
コンピュータ関係の人がみんななれるなら
今頃日本は社長だらけです(^^;

それよりもむしろ経営。
プログラム作りとか仕様作りとかをあくせく
やってるうちは手間賃+αなので、事業とか見えてきません。
いや、ほんとは見えているのに見ていないのか?
そんなに気にしてないけど、でも5億くらいは稼ぎたいものです。
頑張って仕事してるんだから、
宝くじ買って儲かる以上には儲けないとおかしいでしょ。

というわけで、日常的なお仕事の話を。
最近PerlでCGI作るときに使ってたのが
Walrus::SessionとHTML::TemplateとDigest::MD5、あとBlowfish。

今回はCでCGI作らなきゃいけなくなったんだけど
Templateライブラリがない。。。
というわけで、自作してました。

構造体でオブジェクト指向もどきにしたほうがよかったかなと
今になって思ったりするものの、
まぁ、とりあえず似たような感じにできたのでよしということに。
あとでバージョンアップするつもり。
いつになるやら(^^;

HTML::Templateは内部で共有メモリ使ったり
キャッシュしたりして高速化されてるみたいだったんだけど、
そこまでやってる時間はなし。
せめてシンボルテーブルはハッシュに・・とも思ったけど
どうせ1つのテンプレート内で使うタグの数なんて
せいぜい20個とかなんで、単純なリストで間に合わせ。
テンプレートの解析結果はTMPLタグとそれ以外をツリーで管理。

Perlだとハッシュのリファレンスでレコード作って
それを配列にしてテーブル構造にしてあったんだけど
単純配列をループ数にしたがって列行展開する関数で代用。

というわけで、この自作Templateライブラリを使って
ようやく本題のCGIを作成します。

それにしてもなんでこう年度末ぎりぎりまで仕様が決められないのか。
愚痴はたくさんあるけど、そんな時間もないし、ま、いいか。
【2005/02/23 12:08】 | Pro*C | トラックバック(0) | コメント(0)
リアルシステムズ      情報工学技術士事務所


情報工学部門の独立技術士が思うこと

ブログ内検索

カテゴリー

プロフィール

佐藤 誉範

Author:佐藤 誉範
リアルシステムズ

平成3年からソフトハウスでシステム構築を行ってきました。
平成15年に技術士(情報工学部門)の資格を取得し、独立してリアルシステムズを創業。

情報システム構築に関することなら
どんなご相談にも親身に対応させていただきます。
一緒により良いシステムを考えましょう!

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

天気予報

リンク

このブログをリンクに追加する

RSSフィード

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。