編譯鏈接使用 MySQL C API 的程式時出現:
/tmp/ccFKsdPa.o: In function `main':
undefined reference to `mysql_init'
undefined reference to `mysql_real_connect'
undefined reference to `mysql_error'
undefined reference to `mysql_close`
鏈接器未找到 MySQL 客戶端庫 libmysqlclient。
-L<庫目錄> -lmysqlclientgcc -o myapp myapp.c -L/usr/lib/mysql -lmysqlclientmysql_config 自動獲取參數(推薦):gcc -o myapp myapp.c $(mysql_config --cflags --libs)uncompress 等符號缺失,加 -lz 鏈接 zlib。connect 需 -lsocket -lnsl 等)。__lxstat 等符號缺失,說明預編譯庫與當前系統 glibc 版本不匹配,需下載源碼自行編譯。錯誤:libmysqlclient.so: cannot open shared object file
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libmysqlclient/usr/lib 並執行 ldconfig。gcc -static -o myapp myapp.c $(mysql_config --libs)(注意:靜態鏈接可能導致許可證與部署問題)。mysql_config --libs
# 輸出示例:-L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto
直接將輸出加入編譯命令即可解決 90% 鏈接問題。