こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C言語 埋め込みSQL ecpg

C言語の埋め込みSQLで質問です。
ご教示ください。初心者です。
【環境】
Windows7 64bit
gcc:5.3.0
PostgreSQL:9.6.1

【pgcファイル】
#include <stdio.h>
exec sql include sqlca;
int main(char* argx[], char* argv[]){
exec sql begin declare section;
char NAME[256];
char MAIL[256];
exec sql end declare section;
exec sql connect to bookmark user dbuser;
strcpy(NAME,argv[1]);
strcpy(MAIL,argv[2]);
exec sql insert into Name_list (name, mail) values (:NAME, :MAIL);
exec sql commit;
exec sql disconnect;
return 0;
}
【症状】
以下のコマンドを実行するとエラーが出ます。
-Iでインクルードしようとしています。
C:\cTest\c>ecpg name_list_db.pgc -I C:\postgresql\include
ecpg: ファイル"-I"をオープンできませんでした: No such file or directory
ecpg: ファイル"C:\postgresql\include"をオープンできませんでした: No such file or directory

一応Cファイルは生成されます。

強引にgccすると下記のエラーが出ます
C:\cTest\c>gcc -o name_list_db name_list_db.c -I C:\postgresql\include -lecpg
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lecpg
collect2.exe: error: ld returned 1 exit status

どうすれば良いかご教示ください。
この辺のWebサイトを参考にしました。
http://se.cite.ehime-u.ac.jp/~aman/memo/SQL/ecpg.html

以上よろしくお願いいたします。

投稿日時 - 2017-04-03 21:24:48

QNo.9312994

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

最初の引数はint型と決まっています。
これは言語仕様ですので変えられません。
それならmainにしたくないとか==はやっぱり=にしたいなんてのもダメでしょ?

投稿日時 - 2017-04-03 23:02:04

ANo.1

int main(char* argx[], char* argv[]){

ではなくて
int main(int argc,char* argv[]){

ですね。

投稿日時 - 2017-04-03 22:05:38

補足

int main(char* argx[], char* argv[]){
両方ともchar型で定義したいのですが、
int main(int argc,char* argv[]){
にすべきなのでしょうか?

投稿日時 - 2017-04-03 22:33:20