• 締切済み

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 以上よろしくお願いいたします。

みんなの回答

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.2

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

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

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

noname#237545
質問者

補足

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

関連するQ&A