私はMAC OSXを使用して、ちょうどローカルデータベースへの接続をテストする「試験」msyqlアプリを作成しようとしています:なぜMAC OSX上で簡単なmysql cアプリケーションをコンパイルするときに未定義のシンボルが得られますか?
#include <my_global.h>
#include <mysql.h>
int main(void)
{
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql, MYSQL_READ_DEFAULT_GROUP, "examplemysql");
if(!mysql_real_connect(&mysql, "localhost", "someuser", "somepassword", "sampledb", 0, NULL, 0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql));
}
}
私はコマンドを使用してコンパイル:gccの-Iは/ usr/local/mysqlの/含ま-Lは/ usr/local/mysqlの/ libにmysql.c
I取得から参照する次のエラー
未定義シンボル
"_mysql_options"、:cceohP7E.oで
_main から参照 "_mysql_real_connect":cceohP7E.o
で
_main:から参照cceohP7E.o
"_mysql_error" で
_main、:から参照cceohP7E.o
で
_main "_mysql_init"、 LD:記号(S)
collect2はが見つかりません:ldは私はC/Unixの専門家だが、私は勉強したい
1つの終了ステータスが返されました。私はここで64ビットアーキテクチャを実行していることを知っています。これは問題になりますか?私が間違っていることを教えてください。
ありがとうございました。
リンカーがインクルードヘッダーを見つけられていないか、適切なヘッダーでないリンカーです。呼び出す関数がこれらのヘッダーに定義されていることを確認してください。 – Falmarri
私はヘッダーファイルを検索していますが、正確には "_mysql_options"などは見つかりませんでした。私の質問は、 "_mysql_options"はどこから来たのですか? – EDJ