Bonjour,
undefined reference n'est pas un problème d'include (et cette directive preprocesseur fonctionne très bien - ouf), mais un problème de link.
si start a besoin de api_user, l'inclure lui permet de compiler en lui indiquant que les éléments existent.
Mais pour fonctionner, après la compilation il y a le linkage, et il doit aller chercher dans api_user(.so, .lib, .a, ...) les éléments qu'il lui faut.
Donc forcément, si tu ne link pas api_user, les référence manqueront.
La compilation devrait plus ressembler à
gcc start.c -o start -lapi_user
ou peut-être
gcc start.c -o start (-o ?) api_user
Par ailleurs, tes fonctions dans api_user.c, déclarés dans api_user.h utilisent des variables déclarés dans start.c !!! 
Ce qui semble l'essence du problème en fait.
Partager