- - PR -
MinGWでOCIを使用するソース
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-18 00:17
MinGWのgccでOracleを使うコードを書いていますが、
コンパイル時にリンクエラーとなってしまいます。 MinGWでOCIを使うソースをコンパイルする方法をお教え頂けないでしょうか。 | ||||
|
投稿日時: 2007-07-18 07:22
これだけじゃ答えられようがないんじゃねーかな。 どういうエラーなのかどの部分なのかを書いたほうがいい。 | ||||
|
投稿日時: 2007-07-18 09:15
大変申し訳ありません。コンパイル方法とエラー内容を送付させて頂きます。
《使用ソフト》 ・MinGW-5.1.3 ・MSYS-1.0.10 MSYS上でコンパイルをかけています。 《コンパイル方法》 gcc ソースファイル -I/D:/oracle/ora92/oci/include -L/D:/oracle/ora92/oci/lib/ msvc/oci.lib -I/D:/oracle/ora92/plsql/public/ -L/D:/oracle/ora92/oci/lib/msvc/o raocci9.lib -L /D:/oracle/ora92/oci/lib/msvc/ociw32.lib 《エラー》 undefined reference to `oclose' undefined reference to `ologof' undefined reference to `odefin' undefined reference to `oopen' undefined reference to `obndrn' 多分ライブラリのリンクが出来ていないのではないかと思っています。 どなたかお解かりの方、ご教授頂けないでしょうか。 | ||||
|
投稿日時: 2007-07-18 10:02
include のパスが正しく設定できていなくて
ociapr.h をインクルードできていないのでは ? | ||||
|
投稿日時: 2007-07-18 10:10
オプションの指定が間違ってそうです。
-L (大文字)がライブラリのディレクトリの指定、-l (小文字) がライブラリ名の指定で、この場合は両方必要です。 | ||||
|
投稿日時: 2007-07-18 11:11
OCI のことはまったく知らないのですが。MinGW 一般のお話としては、スフレさんのいうように -L (大文字) と -l (小文字) が違いますね。それから MinGW で *.lib ってリンクできますかね。以前は、reimp.exe などを使って、*.a に再構成する必要がありました。
たとえば、hoge.lib を hoge.a にする場合は
とやって hoge.a を作成しました。 でリンカオプションとして -lhoge を指定すると。 | ||||
|
投稿日時: 2007-07-18 16:07
皆様、ご回答ありがとうございます。
以下の手順でコンパイルが出来ました。 gcc ソースファイル -I /D:/oracle/ora92/oci/include -L /D:/oracle/ora92/oci/lib/msv c -l oci -I /D:/oracle/ora92/plsql/public -o 実行ファイル -O3 |
1