如果我想包含要搜索的頭文件的目錄,這是首選方法,爲什麼?-I dir vs. -isdir dir
12
A
回答
7
目錄dir添加到目錄列表的頭部要搜索的頭文件。這可以用來覆蓋系統頭文件,替換你自己的版本,因爲這些目錄是在系統頭文件目錄之前被搜索到的。但是,您不應該使用此選項來添加包含供應商提供的系統頭文件的目錄(使用-isystem)。如果您使用多個-I選項,則按照從左到右的順序掃描目錄;標準系統目錄在後面。
如果標準系統包含目錄或使用-isystem指定的目錄,也使用-I指定,則-I選項將被忽略。該目錄仍將被搜索,但作爲系統目錄在系統包含鏈中的正常位置。這是爲了確保GCC的程序修復buggy系統頭文件和include_next指令的順序不會被無意中改變。如果您確實需要更改系統目錄的搜索順序,請使用-nostdinc和/或-isystem選項。
因此-I
可能是指定頭文件位置的首選選項,除了特殊情況(如供應商提供的系統頭文件)。
1
您應該使用-I指定標題的位置。
用-isystem指定的文件將在-I處理後進行搜索,並通過gcc(與標準系統標頭相同)接收特殊處理。
16
查看此操作的一種方法是使用您使用-I
控制的標題和不包含(系統,第三方庫)的標題與-isystem
。實際的區別來自於警告被啓用時,來自-isystem
標題的警告將被抑制。
0
當您使用-I包含標題「Myheader.h」時,編譯器會生成搜索順序:「Myheader.h」,「system/headers」。所以如果在「MyHeader.h」中找不到「system/headers」中的內容。但是,當你使用-isystem時,你基本上是說用我給你的任何東西替換「system/headers」。所以在「系統/頭文件」中不會再出現問題。
相關問題
- 1. Python dir(dict)vs dir(dict .__ class__)
- 2. Python dir(object)vs object .__ dir __()
- 3. dir/*,dir/**,dir/**/*,dir /**/*.*在globbing中有什麼區別?
- 4. mod_rewrite的/dir/index.html到/ DIR/
- 5. .htaccess rewrite/dir/sub to/dir
- 6. 致命錯誤:main()無法在dir/dir/dir/dir中正確寫入
- 7. CSS中的E:dir(dir)和E [dir =「dir」]有什麼區別?
- 8. VBA.FileSystem Dir
- 9. 在DIR
- 10. lein-cljsbuild source-cljs dir - > output-js dir?
- 11. 的.htaccess - 力從「DIR/page.html中」→「DIR /頁」
- 12. example.com/dir/index.php作品,但example.com/dir/不
- 13. Dir&Sub-Dir中的所有文件
- 14. dir是什麼? dir +「/」:「」是什麼意思?
- 15. PHP - 從DIR
- 16. dir和dir /在linux終端或dos中有什麼區別?
- 17. 很慢dir()
- 18. mod_rewrite subdomain + dir
- 19. 重寫子DIR
- 20. dir()__class__屬性?
- 21. Apache Dir列表
- 22. grails-app/utils dir
- 23. 如何DIR
- 24. Ruby - Threads and Dir [] arrays
- 25. is_writable($ DIR)不工作
- 26. Jenkins(Hudson)SVN checkout dir
- 27. Yii的DIR分離//
- 28. patsubst和dir使用
- 29. Git的差異DIR
- 30. git-svn:Keep .svn dir(s)
包含或不包含主機標準C庫? – 2010-04-05 16:42:51
也不是那個,也不是另一個。只需閱讀GCC手冊中有關預處理選項的信息,就可以瞭解這兩者。 – helpermethod 2010-04-06 08:54:06