gcc wont compile and run MySQL C libraries

徘徊边缘 提交于 2019-12-20 10:10:51

问题


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

int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());
}

~$ gcc -o mysql-test MySQL-Test.c

im trying to execute this test program from terminal but get the following error message:

/tmp/cceEmI0I.o: In function main': MySQL-Test.c:(.text+0xa): undefined reference tomysql_get_client_info'

what is wrong? my system is ubuntu


回答1:


MySQL comes with a special script called mysql_config. It provides you with useful information for compiling your MySQL client and connecting it to MySQL database server.

Pass --libs option - Libraries and options required to link with the MySQL client library.

$ mysql_config --libs

Typical Output:

-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto

Now you can add this to your compile/link line:

gcc -o mysql-test MySQL-Test.c $(mysql_config --libs)



回答2:


You need gcc -o mysql-test MySQL-Test.c -L/usr/local/mysql/lib -lmysqlclient -lz

Replace -L/usr/local/mysql/lib with wherever you client library is (if it isn't already in your libpath)

See the MySql instructions for building clients.




回答3:


For uses of Netbeans on Linux

Open you make file (MakeFile) and add the following lines

# These are the flags that gcc requires in order to link correctly against our installed 
# client packages
MYSQL_LIBS := $(shell mysql_config --libs)

right below the Environment block.

Then right click on your project node , select Properties, Build and add $(MYSQL_LIBS) to the Additional options parameter.




回答4:


You are not linking to the libraries. Use: gcc -llibrarygoeshere -o mysql-test MySQL-Test.c See here for more information about linking with gcc.




回答5:


It is not a compilation error. It is a link error.

Add the mysql library to create your executable with option -lmysql should do the trick.




回答6:


You forgot to link against the MySQL library. Try adding -lmysql to your compilation line.

See http://www.adp-gmbh.ch/cpp/gcc/create_lib.html for more information.




回答7:


Maybe late but worked for me
If you are using an IDE you should link the library to your project.
I am using CodeBlocks on ubuntu 12.4 64x. For linking the library, you should go to Project -> Build options -> linker settings and add the library. this is my lib path : /usr/lib/x86_64-linux-gnu/libmysqlclient.so

Hope be useful...



来源:https://stackoverflow.com/questions/3396181/gcc-wont-compile-and-run-mysql-c-libraries

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!