sqlcxtの呪縛

Pro*Cでプリコンパイル⇒Cでコンパイル⇒実行ファイル作成

ここで、最後の実行ファイル作成時(ld)にsqlcxt関数が見つからないという問題
で相当時間を食われた。

#ググってみても、世界中のみんなが結構苦しまされている模様。

ld: Unsatisfied symbol "sqlcxt" in file hogehoge.o
ld: Unsatisfied symbol "sqlorat" in file hogehoge.o

結局は、コンパイルオプションで解決することが分かった。

とりあえずその部分だけ抜粋すると以下のような感じ。
ちなみに構成は、HP-UX11+Oracle11gで、CPUはItanium 64bit。

■Cでコンパイル時

■実行ファイルコンパイル時 (特にこっちは大事)

  • L$(ORACLE_HOME)/lib -lclntsh -lsql11
  • L$(ORACLE_HOME)/precomp/lib -lproc2

Oracle10gまでは結構データがあるのだが、11gとなるとなかなかデータが少ない。

しょうがないのでマニュアルとか読んでなんとか解決にこぎつけた。

#まあもともとそれが正当なやり方か。。。