Re: [問題] gcc 不能過

看板Linux作者 ( 殺手哥吉拉 13)時間17年前 (2009/03/25 01:05), 編輯推噓4(405)
留言9則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《bluehaerts (5858笨58)》之銘言: : 請問各位高手: : 我在 vi 裡面編輯一個簡單讀取 字元 的c程式 : 可是 編譯之後 他沒有 #include<conio.h> 這個標題檔 : 所以我 getch() 不能用 : 請問 我再gcc 的時候 要加入哪個參數 : 我知道 include<math.h> : 是在 gcc 檔名.c -lm : 可是........我不知道 #include<conio.h> : 這個要加啥 google 也是不知道 要查啥關鍵字 : 請問 各位高手 可以提示一下嘛 : 補一下他的訊息 : /tmp/ccAF0Xdk.o(.text+0x67): In function `main': : : undefined reference to `getch' : collect2: ld returned 1 exit status 首先要知道你要 include 的 header file 放在哪裡 也就是 conio.h 放在哪 假設它在 /usr/local/include/bluehaerts 裡面 在 gcc 編譯的時候就把這個路徑加入到搜尋路徑裡面 gcc 檔名.c -lm -I/usr/local/include/bluehaerts -- 隨手關電腦,救救北極熊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.177.157

03/25 01:10, , 1F
可是 是學校主機 我可以 用啥指令查到嘛
03/25 01:10, 1F

03/25 01:13, , 2F
他放在哪個位子嘛
03/25 01:13, 2F

03/25 01:17, , 3F
還有 我們學校主機 只要打 檔名.C -lm
03/25 01:17, 3F

03/25 01:17, , 4F
就可以編譯了耶 不用 加後面那串說
03/25 01:17, 4F

03/25 03:53, , 5F
因為 math.h 是放在 gcc 預設就會去找的地方,所以不用加 -I
03/25 03:53, 5F

03/25 03:55, , 6F
這種編譯選項就能編譯了。
03/25 03:55, 6F

03/25 04:04, , 7F
另外補充一點,header file 和 library file 是兩回事,加了
03/25 04:04, 7F

03/25 04:06, , 8F
-I<header 路徑> 通常也必須另外再加 -L<library 路徑> 才能
03/25 04:06, 8F

03/25 04:07, , 9F
成功編譯。
03/25 04:07, 9F
文章代碼(AID): #19oHBBey (Linux)
討論串 (同標題文章)
文章代碼(AID): #19oHBBey (Linux)