アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在PRO*CとORACLEを学んでいる初心者です。
PRO*Cを使用したCプログラムを作成し、gccコマンドで
プログラムをコンパイルしたんですが、以下のようなコンパイルエラーがでまして、どうしたらいいのかわからず、先に進めない状態です。

# gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME -lclntsh
viewaddr.c:139:20: sqlcpr.h: No such file or directory

確かにプログラム上でsqlcpr.hをインクルードしています。
sqlcpr.hを使用したいのですが、認識させるにはどうしたらいいのか教えていただけないでしょうか?
環境はUNIX(SUN)、ORACLE9iを使用しています。
どうかよろしくお願いいたします。

A 回答 (3件)

gcc のマニュアルを読めばわかるけど「インクルードディレクトリの追加」は -I<ディレクトリ> という形で指定します (もちろん実際には <> は付けません).


で, sqlcpr.h がどこにあるかですが, 最悪
find / -name sqlcpr.h
で見つけることはできます.

この回答への補足

Tacosanさん
回答ありがとうございました。
早速やってみたのですが、
sqlcpr.hは
$ORACLE_HOME/precomp/publicの直下にありました。
それでいろいろとやってみたのですが、やはり同じエラーがでます。
たとえば、
#gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME/ -L$ORACLE_HOME/precomp/ -lclntsh -lpublic
のような・・・。
実際どうやるのかも多分分かっていないと思います。
具体的にどういうコマンドを書けばいいか教えていただけないでしょうか?
初心者の質問ですいませんが、よろしくお願いいたします。

補足日時:2006/04/01 11:52
    • good
    • 0

>たとえば、


>#gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME/ -L$ORACLE_HOME/precomp/ -lclntsh -lpublic
>のような・・・。

No.2の人も書いてるけど、インクルードの追加は-I(大文字のアイ、エルでなくて)だと思うんだけど、-I(繰り返すけど、大文字のアイ、エルでなくて)はどこにも指定してませんよね?

それじゃ上手く行かないのは当然なのでは?

この回答への補足

chie65536さん
ありがとうございました。
おかげで、メッセージは消えたのですが、次に以下のようなエラーが
でて、どうしていいのか分かりません。
#gcc -o ldaddrcsv ldaddrcsv.c -m64 -L$ORACLE_HOME -lclntsh -I
/$ORACLE_HOME/precomp/public/

ld: fatal: file /u01/oracle9/DSHome/lib/libclntsh.so: wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to ldaddrcsv
collect2: ld returned 1 exit status

このメッセージはどうすればなおるでしょうか?
何が悪いのでしょうか?
どなたか教えてください。よろしくお願いいたします。

補足日時:2006/04/02 11:05
    • good
    • 0

コンパイラスイッチに「追加のインクルードファイルのある場所」も指定しないと。

この回答への補足

chie65536さん
早速の回答ありがとうございました。
一つ初歩的な質問させてください。
どういういう風に追加すればいいのでしょうか?
具体的に教えていただけないでしょうか?
また追加のインクルードファイル(sqlcpr.h)の在処の探し方もおしえていただけないでしょうか?
本当に初歩的な質問ですいませんが、よろしくお願いいたします。

補足日時:2006/03/31 15:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A