看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Ubuntu 最新版 用VMware搭建的虛擬OS 問題(Question): 正常簡單的gcc compile是OK的 現在是我自己寫了一支API abc.c跟abc.h 我嘗試在main.c include這個abc.h 但他就顯示錯誤 找不到此.h 這當然是意料之中 但我google卻沒有教學= = 看起來好像是要用到makefile?? 還是我gcc要打什麼指令讓編譯器知道我的abc.h的路徑呢?? 希望有前輩能簡單指點一下 謝囉^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.125.252
NDark:手動link也可以寫make file檔. 04/21 17:16
NDark:總之要指定.h的路徑.以及相關link參數 04/21 17:17
diabloevagto:最簡單直接在include給定絕對路徑 04/21 17:28
diabloevagto:但這樣不太好用,另外也能寫路徑在makefile 04/21 17:28
cuteclare:-Iyour/include 04/21 17:55
leiyan:怎不用ide 04/21 19:19
tjjh89017:#include "header.h" 04/21 19:25
uranusjr:一定程度了解這些東西不會有壞處, 別太依賴 IDE 04/21 19:40
lovesnake:樓樓上直接include沒用喔= =" 04/21 21:26
syuasdio:-I路徑 04/21 22:52
syuasdio:EX: gcc -I/home/inc test.c 04/21 22:54
謝謝各位前輩 結果我的abc.h有呼叫到math.h google發現math.h也是要自己去link... 所以我現在步驟到底是要如何??? 我自己想的是這樣: 步驟1. 先 compile abc.c 然後link math.h的路徑?? 方法: gcc -Wall abc.c /usr/lib/x86_64-linux-gnu/libm.a -o abc 結果: 顯示錯誤如下 /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' 現在卡在這.. 步驟2. compile abc.h 步驟3 compile main.c 然後指定上述前輩們說的路徑 我想的這樣對嗎 還有我的錯誤訊息該怎麼解...謝謝了 ※ 編輯: onlywig 來自: 218.160.249.142 (04/22 10:52)
uranusjr:Linking 是最後才做, 正確的步驟是 04/22 11:25
uranusjr:1. gcc -Wall abc.c -o abc 04/22 11:28
uranusjr:2. gcc -Wall main.c -o main.o 04/22 11:28
uranusjr:...前面寫錯了, 懶得改, 我回文好了 04/22 11:29
onlywig:那像math.h是在compile的時候就要指到相對應的lib?? 04/22 11:41