Malgré le fait que j'inclus « #include » à mon code, quand j'utiliser la fonction qsort intégrée, clang me donne l'erreur:clang erreur liant: référence non défini à « qsort »
schedule.o: In function `chooseTicket':
schedule.c:(.text+0x16d): undefined reference to `qsort'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
début du fichier (schedule.c) est comme ça:
#include "sched.h"
#include "schedproc.h"
#include <assert.h>
#include <minix/com.h>
#include <machine/archtypes.h>
#include <stdlib.h>
#include <lib.h>
#include <string.h>
#include <time.h>
et est ici la fonction dans laquelle je l'ai utilisé qsort fonction intégrée
int chooseTicket(int* ticketList,int length,int totalTicket){
int randomValue;
int temp=0,prevTemp=0,selectedTicket=0,selectedIndex = 0;
time_t t;
struct schedproc *rmp;
int* sortedTicketList = malloc(length*sizeof(int));
memcpy(sortedTicketList,ticketList,length);
srandom((unsigned)time(&t));
randomValue = (random() % totalTicket);
qsort(sortedTicketList,length,sizeof(int),cmpFunc);//this line
note: Même erreur pour la fonction 'rand()' et 'srand()' et j'ai utilisé 'random()' et 'srandom()', le problème a été résolu. Je ne comprends pas malgré le fait que 'rand()' et 'srand()' sont des fonctions généralement acceptées et le fichier d'en-tête contient ces fonctions, pourquoi clang me donne des erreurs de liaison alors que j'utilise 'rand()' et 'srand).
en plus:.. vous déplacer en srandom ((non signé) temps (&t)); 'à' main() 'Vous devez semer le RNG une seule fois –
double possible de [Qu'est-ce qu'une erreur de symbole de référence externe non défini/non résolu et comment puis-je résoudre ce problème?] (http://stackoverflow.com/questions/12573816/what-is-an-defined-reference-unresolved-external-symbol-error-and-how-do-i-fix) –
Can vous montrez la commande clang que vous utilisez pour construire votre logiciel? – chrisaycock