[問題] gcc下如何compile (自加.h檔)

看板C_and_CPP作者 (環島旅行ing)時間13年前 (2012/04/21 16:46), 編輯推噓4(4013)
留言17則, 9人參與, 最新討論串1/2 (看更多)
開發平台(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

04/21 17:16, , 1F
手動link也可以寫make file檔.
04/21 17:16, 1F

04/21 17:17, , 2F
總之要指定.h的路徑.以及相關link參數
04/21 17:17, 2F

04/21 17:28, , 3F
最簡單直接在include給定絕對路徑
04/21 17:28, 3F

04/21 17:28, , 4F
但這樣不太好用,另外也能寫路徑在makefile
04/21 17:28, 4F

04/21 17:55, , 6F
-Iyour/include
04/21 17:55, 6F

04/21 19:19, , 7F
怎不用ide
04/21 19:19, 7F

04/21 19:25, , 8F
#include "header.h"
04/21 19:25, 8F

04/21 19:40, , 9F
一定程度了解這些東西不會有壞處, 別太依賴 IDE
04/21 19:40, 9F

04/21 21:26, , 10F
樓樓上直接include沒用喔= ="
04/21 21:26, 10F

04/21 22:52, , 11F
-I路徑
04/21 22:52, 11F

04/21 22:54, , 12F
EX: gcc -I/home/inc test.c
04/21 22:54, 12F
謝謝各位前輩 結果我的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)

04/22 11:25, , 13F
Linking 是最後才做, 正確的步驟是
04/22 11:25, 13F

04/22 11:28, , 14F
1. gcc -Wall abc.c -o abc
04/22 11:28, 14F

04/22 11:28, , 15F
2. gcc -Wall main.c -o main.o
04/22 11:28, 15F

04/22 11:29, , 16F
...前面寫錯了, 懶得改, 我回文好了
04/22 11:29, 16F

04/22 11:41, , 17F
那像math.h是在compile的時候就要指到相對應的lib??
04/22 11:41, 17F
文章代碼(AID): #1FadG3Hs (C_and_CPP)
文章代碼(AID): #1FadG3Hs (C_and_CPP)