• ベストアンサー

Cソースにホスト変数を宣言したヘッダをインクルード方法

C言語ソースにホスト変数を宣言したヘッダをインクルードする記述を教えてください。下記の記述をしたのですが、エラーになります。 EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; #include "../host_header.h" EXEC SQL END DECLARE SECTION;

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> ファイルが無いとエラーになってしまいました。。。。 質問に ../host_header.h とあったので、ソースファイルがあるひとつ上に host_header.h があると思ったのですが、実際にファイルはあるのですか?

akinosuke
質問者

お礼

できました。ヘッダーファイルがソースの上の別ディレクトリにあったため、 エラーとなっていました。ありがとうございます。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

EXEC SQL BEGIN DECLARE SECTION ~ END は、SQL のプリプロセッサが 解釈するところなので、Cのディレクティブを理解できないんじゃないで しょうか? こんな感じじゃ駄目なのかな? EXEC SQL BEGIN DECLARE SECTION; EXEC SQL INCLUDE '../host_header.h' EXEC SQL END DECLARE SECTION; # やったことはないので、自信はないです (^^;

akinosuke
質問者

補足

回答ありがとうございます。ただ、やってみたのですが、ファイルが無いとエラーになってしまいました。。。。

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.1

C言語というより、ある種のSQLプリプロセッサだろうと思いますが。 環境やエラーの内容について書いて頂いた方が的確な回答が出ると思います。 とりあえず、C言語(Cプリプロセッサ)のインクルード文としては、 上記の記述で普通は大丈夫です。ただし、ディレクトリを書き込むのではなく、 ソース中では #include "host_header.h" のようにして、コンパイルオプション(UNIXのCなら-Iなど)でインクルード ファイルのディレクトリを指定するのが、より一般的です。

akinosuke
質問者

補足

#include "host_header.h" と記述したのですが、下記のエラーメッセージが出ます。 エラーメッセージは”SQL0008N ホスト変数宣言で見つかった字句 "#" が無効です。” OSはNTです。