2011-07-29 11 views
0

私はMySQLとC++を一緒に使用しようとしていますが、関連するライブラリの使用状況を得ることができないため、開始できないようです。C++のMySQLライブラリにリンクできません

私はMinGWコンパイラを使用し、Netbeansで作業しています。

#include <cstdlib> 
#include <iostream> 
#include <my_global.h> 
#include <mysql.h> 

using namespace std; 

int main(int argc, char **argv) 
{ 
    cout << "MySQL client version: " << mysql_get_client_info(); 
} 

しかし、NetBeansはmy_global.hまたはmysql.hを見つけることができません: 私は、コードを持っています。 プロジェクトのプロパティで、ライブラリlibmysql.dllにリンクしました。 同じディレクトリにmysqlclient.libもありますが、NetBeansリンカがその拡張タイプを登録していないように見えるため、リンクする方法が見つかりません。

ご協力いただければ幸いです。

C

--- PROGRESS 私は、NetBeansに入ったプロパティ - >ビルド - > C++セクションとインクルードはで私のMySQLインストールのディレクトリが含ま追加 『ディレクトリ』のセクションを含めるを。これは、上記のmy_global.hやmysql.hが見つからないという問題を解決しましたが、今度はcrtdbg.hを見つけることができません。

実際には古いVisual Studioインストールでcrtdbg.hがあって、それをすべて移動しました。私のMinGWにはそこにh個のファイルがあります。今は.hsを見つけているようだが、おそらくVisual Studio .hファイルの問題がMinGWと互換性がないというエラーのロードで失敗する。ふりだしに戻る。

+0

ヘッダーファイルが見つからない場合は、リンクステージにまだ達していません。ヘッダーファイルの場所とそれらに設定されたパスとは関係があります。 – QuentinUK

答えて

0

私はWindowsでわからないんだけど、Linuxでは、あなたは、クライアント・アプリケーションのコンパイルに正しいフラグを取得するためにmysql_configをツールを使用することができます。コンパイルするための

を:

$ mysql_config --cflags 
-I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX 

とリンクします:今

$ mysql_config --libs 
-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient 

あなたはMinGWのを使用している場合は、オプションは、おそらく* _linuxのものを落とし、類似していなければなりません。

-I < path_to_include_dir>ビットが欠けている可能性があります。

+0

ありがとう、私はWindowsのMySQLコマンドラインで正しい構文を取得するように見えることができません。しかし、私は最終的にLinux上でそれをやって行くつもりですので、上記がうまくいけば助けになります。 – Columbo

1

mateディレクトリを設定します。それはTools->Options->C++->Code Assistanceの下にあります。 my_global.hのパスを追加します。

このforum postを参照してください。

+0

ありがとうございます。私はそれをしましたが、今はcrtdbg.hを求めています。 – Columbo