2010-11-20 28 views
0

gccバージョン4.1.2でcプログラムをコンパイルできない20080704(Red Hat 4.1.2-48)未定義シンボル:mysql_options問題

どうすればよいですか?

ありがとうございました。

+3

より具体的に、いくつかの詳細/コードを提供してください。私はあなたがここに実際の問題を抱えていると信じています。質問が終わったのを見るのは残念です。 – casablanca

答えて

1

あなたができることの1つは、より多くの情報を提供することです:)
ここでの典型的な例は、/ usr/lib/includeや/ usr/local/lib /含める。どちらの方法でも、コンパイラは "mysql_options"の意味を知らない。

0

未定義のシンボルは、一般に、最終的なリンク段階では解決できない関数または変数です。

最も一般的な原因は、それらを含むオブジェクトファイルまたは共有ライブラリをコンパイラ/リンカオプションに追加できないことです。たとえば、共有ライブラリがlibtest.soの場合、gccに-ltestオプションを追加する必要があります。これはldを直接使うのではなく、多くのシステムでリンクするために通常使用されます。

多くの場合、ライブラリ検索パス(gccの-Lオプション)が正しく設定されていないため、リンカーはこれらのライブラリを見つけることができません。ただし、この場合、リンカーは指定されたライブラリを見つけることができないという別のエラーメッセージを出力します。

もう1つの原因は、実際の共有ライブラリと同期していない条件付き部分でヘッダーファイルを使用することです。例として、ヘッダーファイルで定義されているように、ライブラリー内の関数のユニコードバージョンを使用しているのに対し、実際の共有ライブラリーオブジェクトはユニコードサポートを持たないため、これらの関数は含まれていません。

mysql_optionsシンボルは、libmysqlclientおよびlibmysqlclient_rライブラリにあります。エラーの原因となっているコマンドラインを確認し、それらがリンクされているかどうか確認してください。

さらに詳しいヘルプが必要な場合は、上記のコマンドライン、正確なエラーメッセージ、あなたがコンパイルしようとしているものに関するいくつかの情報。

関連する問題