儘管我列入「#包括」我的代碼,當我使用內置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)
啓動該文件(schedule.c)是這樣的:
#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>
這裏是我使用的快速排序的內置函數的函數
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
注意:同樣的錯誤也發生在'rand()'和'srand()'函數,而我使用'random()'和'srandom()',那麼問題就解決了。儘管'rand()'和'srand()'是普遍接受的函數,頭文件包含這些函數,但我不明白爲什麼鏗鏘聲給出了鏈接錯誤,而我正在使用'rand()'和'srand )。
旁白:。移動'srandom((無符號)時間(&t));'到'main()的'你應該播種RNG的[只有一次 –
可能的複製什麼是未定義參考/解析的外部符號錯誤,我怎麼修復它?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-doi-i-fix) –
Can你展示了你用來構建你的軟件的clang命令? – chrisaycock