[ Sini82 @ 05.07.2010. 15:25 ] @
Ovo je kod programa:

Code:
//http://zetcode.com/tutorials/mysqlcapitutorial/
#include <my_global.h>
#include <mysql.h>

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


Sa gcc mi je radilo bez problema:

Code:
$ gcc /home/1mysqlc.c -o 1mysqlc  `mysql_config --cflags --libs`
$ ./1mysqlc
MySQL client version: 5.1.41


Dodao sam /usr/lib/mysqlclient.so i /usr/lib/mysqlclient_r.so u link libraries (Project -> Build options -> Linker settings na Code::Blocks-u) a i dalje mi se pri kompilaciji javljaju greške:

Code:
/home/Mysqlc/main.c|1|error: my_global.h: No such file or directory|
/homeMysqlc/main.c|2|error: mysql.h: No such file or directory|
/home/Mysqlc/main.c||In function ‘main’:|
/home/Mysqlc/main.c|6|warning: implicit declaration of function ‘printf’|
/home/Mysqlc/main.c|6|warning: incompatible implicit declaration of built-in function ‘printf’|
/home/Mysqlc/main.c|6|warning: implicit declaration of function ‘mysql_get_client_info’|
/home/Mysqlc/main.c|6|warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’|
/home/Mysqlc/main.c|7|warning: control reaches end of non-void function|
||=== Build finished: 2 errors, 5 warnings ===|


Koristim Code::Blocks na Linuxu. Kako da ga podesim?

Ovo je izlaz komande 'mysql_config --cflags --libs':

Code:
$ mysql_config --cflags --libs
-I/usr/include/mysql  -DBIG_JOINS=1  -fno-strict-aliasing   -DUNIV_LINUX -DUNIV_LINUX
-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient
[ djoka_l @ 05.07.2010. 15:40 ] @
Tebi nisu problem biblioteke nego hederi:

Code:
/home/Mysqlc/main.c|1|error: my_global.h: No such file or directory|
/homeMysqlc/main.c|2|error: mysql.h: No such file or directory|


Ne koristim Code::Blocks, ali bi trebalo negde u okruženju projekta da podesiš i PATH za include fajlove. Pretpostavljam da ti fali direktiva -I/usr/include/mysql ako su ti tamo my_global.h i mysql.h
[ Sini82 @ 05.07.2010. 15:58 ] @
Išao sam na Project -> Add files to project i dodao oba header fajla /usr/include/mysql/my_global.h, /usr/include/mysql/my_global.h. I dalje mi javlja istu grešku. Ako treba dodati tu direktivu, ne znam gdje i kako da je dodam.
[ djoka_l @ 05.07.2010. 21:26 ] @
Hm, a kako ja da znam kad ne koristim taj IDE.

Odem na njegov help page i pogledam poglavlje 1.11.6 Extended settings for compilers

Tamo treba da dodaš sve one pretkompajlerske i link direktive koje inače gcc-u ubaciš komandom
mysql_config --cflags --libs
[ Nedeljko @ 05.07.2010. 21:39 ] @
Bibliotečke fajlove ne treba da dodaješ u projekat. Dakle,

Project -> Build Settings... -> Search Directories -> Compiler -> Add, pa onda ubaci putanju do direltorijuma sa hederima. U tvom slučaju, to je

/usr/include/mysql

tj. ono što imaš u -I direktivi kompajleru.

[ Nedeljko @ 05.07.2010. 21:45 ] @
Trebaće i da ubaciš zamenu za -L direktivu.

Project -> Build Settings... -> Search Directories -> Linker -> Add, pa onda ubaci putanju do direktorijuma sa libovima. U tvom slučaju, to je

/usr/lib/mysql

Osim toga, treba ubaciti i zamenu za -l direktivu. Najjednostavnije ti je da je prepišeš u polje "Other Linker Options".
[ Sini82 @ 05.07.2010. 22:15 ] @
Svaka čast! Hvala Nedeljko, puno si mi pomogao.