• ベストアンサー

PRO*C コンパイルエラー

現在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を使用しています。 どうかよろしくお願いいたします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

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

ken6791
質問者

補足

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

その他の回答 (2)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

>たとえば、 >#gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME/ -L$ORACLE_HOME/precomp/ -lclntsh -lpublic >のような・・・。 No.2の人も書いてるけど、インクルードの追加は-I(大文字のアイ、エルでなくて)だと思うんだけど、-I(繰り返すけど、大文字のアイ、エルでなくて)はどこにも指定してませんよね? それじゃ上手く行かないのは当然なのでは?

ken6791
質問者

補足

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

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

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

ken6791
質問者

補足

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

関連するQ&A

  • c言語のコンパイルについて教えてください。

    Unixとwindows98を使用しています。 #include<stdio.h> #include<math.h>    (以下 省略)  と、c言語のプログラムをして、コンパイルを、gcc ファイル名.c  と するのでしょうか。 cl ファイル名 -lm   とするのでしょうか。  どうすれば良いか、教えてください。 説明が下手で申し訳ございません。 お答えを待ってます。  

  • Ubuntuでコンパイルできない

    先日、Ubuntuの7.04をインストールしました。そこで、terminalでコンパイルしようとした結果, gcc ex.cと入力すると、 gcc: ex.c: No such file or directory gcc: no input files とでてそれでコンパイルできていません。助けてください。

  • コンパイル

    ubuntuで、 gcc (ファイル名).c とコンパイルをしようとすると、 error: stdio.h: No such file or directory error: math.h: No such file or directory が出てきてしまいます。どうやってコンパイルしたらよいのでしょう?初心者ですのでよろしくお願いします。

  • コンパイルできない C++

    以下エラーでC++のソースがコンパイルできない fatal error C1083: include ファイルを開けません。'gimite/socket.h': No such file or directory ヘッダーファイルには添付のようにgimite/socket.hを追加済みです

  • MySqlとC言語をWindowsで使いたい。

    WindowsXP MySQL5.0 でC言語(gccを使用)の学習をしたいのですが 行き詰ったので質問させていただきます。 gccでコンパイルを掛けるとinclude文で指定した mysql.hがNo such file or directoryのエラーになり コンパイルが通りません。 どなたかこの環境で実施されたことのある方 ヒントをお願いいたします。

  • C言語のコンパイル方法

    先程、「独習C」を使って勉強していると質問した者です。 私のDOS窓は今 C:\TYC4TH>gcc test.c -o test.exe gcc: test.c: No such file or directory gcc: no input files となっています。 どうすれば、プログラムが実行できますか?

  • C言語、度々申し訳ございません。エラーです。

    いつも大変お世話になり誠にありがとうございます。 標記の件。 コードとコンパイルエラーを書きます。 度々すいません。 どうしたらいいでしょうか? ご回答の程宜しくお願い申し上げます。            高橋耕造 1.コード #include <studio.h> int main(void) { printf("%d\n",123); printf("\\100もらった\n"); printf("またあした\n"); return 0; } 2.コンパイルエラー C:\MinGW>gcc test2.c -o test2 test2.c:1:20: fatal error: studio.h: No such file or directory #include <studio.h> ^ compilation terminated. 検索しましたが解りません。 ご回答の程宜しくお願い申し上げます。

  • solarisのcコンパイラでコンパイルすると日本語はエラーがでます。

    solarisのcコンパイラ、コマンドはccとgccです。で、日本語がコンパイルできるようにするには、どのように設定すればいいのですか?普段はWindowsを使っていて、学校だけUnix系を使っているのであまりUnix系の操作が分からないので、詳しく教えてください。

  • Pro*C コンパイルエラー

    procコマンドにてコンパイルを行った時に、下記のエラーが出てしまいます。何故でしょうか? 原因の分かる方、誰か教えて下さい。 Pro*C/C++: Release 9.2.0.1.0 - Production on 土 Apr 16 15:19:06 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 行0、列0でエラーが発生しました。ファイルtest001.pc PCC-F-02102, Cプリプロセッサ処理を実行中に致命エラーが発生しました。 行1661、列2でエラーが発生しました。ファイルtest001.pc 1661 } 1661 .1 1661 PCC-S-02014, 記号"<eof>"が見つかりました。 次のうちの1つが入るとき: ; { } , = : ( ) [ ] * ? | & < > + - / % ~ ! . # @ ^ *= /= %= += -= <<= >>= &&= ||= ^= ~= := | & == != <= >= << >> ++ -- -> ... .. <> ** => an identifier, a string, a numeric constant, a sql string, misc. punctuation, newline, define, elif, else, endif, error, if, ifdef, ifndef, include, line, pragma, undef, exec, sql, begin, end, var, type, oracle, an immediate preprocessor command, a C token, exec sql, exec sql include, exec sql var, exec sql begin, exec sql end, end-exec, exec sql type, exec oracle, exec oracle else, exec oracle endif, exec oracle begin, a sql hint, create, function, package, procedure, trigger, or, replace, a C++ token,

  • コンパイルエラー「include ファイルを開けません」

    あるプログラムをコンパイルしたところ、 下記コンパイルエラーが発生しました。 ヘッダファイルが開けないようなのですが、 これは自分の開発環境に必要なファイルが足りないのでしょうか? 解決する方法が分からないので、ご存知の方おられましたら ご教示お願い致します。 環境はVC++2005でフルインストールしています。 fatal error C1083: include ファイルを開けません。'WtsApi32.h': No such file or directory