Re: [問題] 關於幾個C的問題

看板C_and_CPP (C/C++)作者 (godfat 真常)時間17年前 (2007/10/17 17:53), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《rickykidd (saber.c)》之銘言: : 請問在include後面 常常會有兩個符號 : <> 或是 " " : 這兩種差別在哪邊壓>< : : -- : 推 rickykidd:還是不太懂耶= =" 可以說的詳細點嗎>< 10/17 09 : → rickykidd:內建 跟撰寫有差嗎= = 10/17 09 : → rickykidd:而lib 要去哪裡設 我用的事EMBEDDED VISUAL C++ 4.0 10/17 09 我沒用過 embedded visual c++, 不過我簡單講一下 include 的機制 你知道 include 其實就近似程式碼複製貼上嘛?那麼 preprocessor 要怎麼 找到那個檔案在哪? <> 會從 include path 中開始搜尋,include path 中會有好幾個 path 拿來 放 include 檔。我「假設」你的環境是這樣: c:/embedded_vc/bin/cl.exe and etc. c:/embedded_vc/include/c/stdio.h and etc. c:/embedded_vc/include/c++/iostream and etc. 然後 c:/embedded_vc/include/c 和 c:/embedded_vc/include/c++ 這兩個 path, 就很可能是你的預設的 include path. 當你說 #include <stdio.h> 時,preprocessor 會先從第一個(也許啦)include path 開始尋找有沒有 stdio.h 這個檔案?找到了,就拿去用。沒找到,就去下一個 include path 中尋找。我不確定會不會再去你目前的 source code 或現在目錄 下去尋找,但基本上 <> 就該找 include path. 而當你說 #include "my_header.h" 時,preprocessor 應該先從你目前在編譯的 那個程式碼,我們稱此為 compilation unit, 的相對路徑開始尋找。 如你現在有: c:/my_program/my_program.cpp c:/my_program/my_header.h 然後你編譯 my_program.cpp, preprocessor 看到 #include "my_header.h" 就應該從: c:/my_program/ 裡開始尋找 my_header.h 我也不確定如果沒找到會不會再去 include path 中尋找,我之前用 Turbo C++ 是會。 後來就沒幹過這種事了,所以不清楚會不會。 大概就是這樣。 : 另外 請問一下 萬一 程式跑出ERROR 是顯示找不到.lib : 要把lib丟到哪邊壓? 我不知道 vc 參數怎麼下,舉 gcc 為例: -I 接 include path -L 接 library path library path 的概念跟 include path 類似,只是沒有 "" 這種東西,只有 <> XD 所以當然你可以把你的 lib 丟到預設的 library path 下, 不過設定 library path 應該是個比較容易管理的方式。 自己找找 embedded visual c++ 怎麼設吧(或是懶點全丟到 library path 下也行) -- By Gamers, For Gamers - from the past Interplay -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.30.220

10/17 18:43, , 1F
感謝
10/17 18:43, 1F
文章代碼(AID): #175TksFc (C_and_CPP)
文章代碼(AID): #175TksFc (C_and_CPP)