我在/ my/path/to/file文件夾中有幾個頭文件。我知道如何將這些文件包含在新的C程序中,但每次我需要在包含頭文件之前輸入完整的頭文件路徑。我可以在linux中設置一些路徑變量來自動查找頭文件嗎?更新包括Linux中的路徑
回答
您可以創建一個makefile。一個簡單的例子是:
INC_PATH=/my/path/to/file
CFLAGS=-I$(INC_PATH)
all:
gcc $(CFLAGS) -o prog src1.c src2.c
從這裏你可以在很多方面改善這個makefile。最重要的可能是狀態編譯依賴關係(因此只有被修改的文件被重新編譯)。
作爲參考,您可以在此鏈接到GNU make documentation。
如果你不想使用的makefile,你可以隨時設置環境變量,使之更容易輸入編譯命令:
export MY_INC_PATH=/my/path/to/file
然後,你可以編譯程序,如:
gcc -I${MY_INC_PATH} -o prog src1.c src2.c ...
您可能想要在文件.bashrc
中定義MY_INC_PATH
變量,或者可能更好,在包含變量定義的方便位置創建文件。然後,你可以使用source
來設置該變量在當前shell:
source env.sh
我想,但是,使用生成文件是一個非常理想的方法。
謝謝,但有沒有寫任何makefile文件? – 2012-07-17 10:08:23
@ username_4567我只是更新我的問題,以包括一個替代解決方案。但是寫一個5行的makefile對我來說似乎是一個簡單和更好的解決方案。 – betabandido 2012-07-17 10:13:39
感謝其實我以爲有所有頭文件被查找的默認路徑.. – 2012-07-17 10:15:52
我現在不在Linux中,我不能爲了檢查一切是否正確而煩惱重啓,但是您是否嘗試過製作符號鏈接?例如,如果你是在Ubuntu:
$ cd /usr/include
$ sudo ln -s /my/path/to/file mystuff
所以那麼當你要包括塞入,你可以使用:
#include <mystuff/SpamFlavours.h>
存在類似的問題,並有可能較好地解決了(如果你有興趣在永久的解決方案):https://stackoverflow.com/a/558819/1408096
嘗試設置C_INCLUDE_PATH(對於C頭文件)或CPLUS_INCLUDE_PATH(用於C++頭文件)。
榮譽:jcrossley3
- 1. 路徑包括
- 2. 錯誤包括更新後的eclipse中的路徑ndk
- 3. 包括php.ini中的路徑不更新 - 在zend設置下
- 4. 更改php包括路徑與javascript
- 5. Qt的Сreator包括路徑
- 6. 在linux中更改路徑
- 7. CAPL#包括相對路徑
- 8. 概括包含路徑
- 9. C++包括完整路徑
- 10. PHP包括路徑錯誤
- 11. PHP包括路徑問題
- 12. GCC本地包括路徑
- 13. 包括vs定位路徑
- 14. 添加路徑包括
- 15. php包括虛擬路徑
- 16. 與問題包括路徑
- 17. 包括ASP.NET MVC URL路徑
- 18. PHP包括路徑問題
- 19. 文件路徑包括
- 20. require_once不包括路徑
- 21. PHP包含路徑(Linux)
- 22. 在Linux中設置包含路徑
- 23. JavaFX的:無法包括的類路徑
- 24. gitignore包括特定的路徑
- 25. Neo4j的路徑查詢,包括週期
- 26. wordpress the_field()包括數組的路徑
- 27. Qmake不包括qt的庫路徑
- 28. PHP的絕對路徑包括
- 29. 包括使用相對路徑的類
- 30. 的Linux的bash知道腳本路徑,其中包括庫腳本
您可以將路徑添加到你的makefile?如果你使用一個是 – mathematician1975 2012-07-17 09:57:06
你使用gcc嗎?你直接使用它還是使用makefile? – rekire 2012-07-17 09:57:46
我直接使用它 – 2012-07-17 09:59:04