0

Mysqlusing を接続しています。コンパイラをc program in eclipse使用しCYGWINてプログラムをコンパイルしています。インクルード ファイルをインストールmysql c connectorし、コンパイラとリンカーに追加しました。

しかし、私はエラーが発生しています

**** Build of configuration Debug for project DbConnectionC ****

make all 
Building file: ../connection.c
Invoking: Cygwin C Compiler
gcc -I"C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -include"C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include\mysql.h" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"connection.d" -MT"connection.d" -o "connection.o" "../connection.c"
cygwin warning:
  MS-DOS style path detected: D:\java\workspace\DbConnectionC\Debug
  Preferred POSIX equivalent is: /cygdrive/d/java/workspace/DbConnectionC/Debug
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
../connection.c: In function `main':
../connection.c:57: warning: char format, different type arg (arg 2)
../connection.c:57: warning: char format, different type arg (arg 2)
../connection.c:61: warning: char format, different type arg (arg 2)
../connection.c:61: warning: char format, different type arg (arg 2)
Finished building: ../connection.c

Building target: DbConnectionC.exe
Invoking: Cygwin C Linker
gcc -L"C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\lib\opt" -o "DbConnectionC.exe"  ./connection.o   -llibmysql.lib -lmysqlclient.lib
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -llibmysql.lib
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lmysqlclient.lib
collect2: ld returned 1 exit status
make: *** [DbConnectionC.exe] Error 1
makefile:29: recipe for target `DbConnectionC.exe' failed

**** Build Finished ****

このおかげで事前に私を助けてください

4

1 に答える 1

0

最初の部分では、起こりうる問題についていくつかの警告があります。

../connection.c:39: 警告: 関数 `exit' の暗黙の宣言

これはexit()、関数が宣言されていないことを意味します。ソースには#include <stdlib.h>

../connection.c:46: 警告: 制御が非 void 関数の終わりに達しました

の最後に値を返さず、プログラムが成功main()した場合は a を追加します。return 0;

2 番目の部分はリンカーの警告です。

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: -llibmysql.lib
/usr/lib/が見つかりませんgcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: -lmysqlclient.lib が見つかりません

これは、リンカーがライブラリへのパスを必要とするか、ライブラリが存在しないか、ライブラリ名のスペルが間違っていることを意味します。

考えられる解決策の 1 つは、-lmysql -lmysqlclient代わりに を使用する-llibmysql.lib -lmysqlclient.libことですが、私は Windows にあまり詳しくありません。

そうは言っても、 https://stackoverflow.com/tags/c/infoを見て、いくつかの本のリンクを見ることを強くお勧めします。

于 2012-10-19T12:36:52.523 に答える