私のmain()
機能で次のコードを使ってmysqlデータベースに接続しようとしています。おかしいコードの振る舞い
MYSQL *connect = mysql_init(NULL);
これはうまく動作し、ポインタ値が返されます。
私はint Newl_connection(FileHandler& pProcLog)
{
MYSQL *connect = mysql_init(NULL);
return 0;
}
コンパイル及び微細リンク以下のように関数と他のC++ファイルを作成した
は、私は(テストなど)メイン関数内のコードの同じ行にいくつかの呼び出しを行い、ましたすべてOKですが、コードを実行するとNewl_connection()関数の行で失敗します。
私はできるだけ基本的にNewl_connectionを取り除き、Main()を含むファイルからNewl_connection()関数を含むファイルにすべてのヘッダーを含めました。
私が受け取るコンパイルエラーがプログラムが中止、信号SIGABRTを受け
です。 ../sysdeps/unix/sysv/linux/raise.c:54の__GI_raise(sig = sig @ entry = 6)の0x00007ffff6bc6428 54 ../sysdeps/unix/sysv/linux/raise.c:このようなファイルはありませんまたはディレクトリ。
式として型名を使用しようとしています。式のようにタイプ名を使用する発現
試みとして型名を使用する
試み。すべてのインスタンス呼び出しに対して表示されますが、Newl_connection()
関数の呼び出しはterminalです。
他のすべてのインスタンスをmain()
で削除しようとしましたが、同じ問題が発生します。
コードは1か所では動作するが、別の場所では動作が異なるのはなぜですか? 助けていただければ嬉しいです。あなたの関数のヘッダーによる
私はこの問題がヘッダーの間違った組み込みに起因すると推測していますか?しかし、最小限の完全な例では、それを伝えるのは難しいです。 –
関数を呼び出すときに、有効な 'FileHandler'オブジェクトを渡しますか? –
_ "なぜコードは1つの場所では動作するのですか?別の場所では動作が異なりますか?"あなたの[MCVE]を提示してください。 –