已經有許多選項列出瞭如何向C++編譯器添加路徑,以便#include < ...>命令在這些路徑上工作。但是,假設我有一個文件(不是整個項目),並且我想僅爲此文件添加一個包含路徑。我想通過cpp文件(例如,作爲第一行)內的一行代碼來執行此操作。這怎麼可能?爲什麼?因爲我需要從另一個目錄中包含一些頭文件,而這又依賴於同一目錄中的其他頭文件(並且由於這條路徑沒有添加到包括列表)。設置C++包括通過程序代碼行的路徑
例如: 假設我想包括file_a.h
目錄 .../include/extra
,
我能做到這一點通過
#include <extra/file_a.h>
但是,如果,例如,我沒有多餘的目錄直接作爲include
的子目錄,或者file_a
想要包含其他某個地方的其他文件(甚至可以是/extra
,但它不是包含的子目錄),那麼我會遇到麻煩,因爲那麼tra目錄/依賴關係變得困難。
我認爲通過編譯器改變這些目錄是一個壞習慣,所以我認爲更好的解決方案是將它集成到程序中,所以無論我使用哪種編譯器,它都可以工作,無需考慮之後,一旦指定,我必須添加哪些目錄。
如果您可以更改包含的文件,可以將其包含從''更改爲'「file.h」'http://stackoverflow.com/questions/21593/what-is-the-difference -between-include-filename-and-include-filename –
Lanting
因爲你可能沒有想到在運行時被執行的代碼行,你說的「代碼行」是什麼意思?你爲什麼不在你的#include語句中使用路徑?請詳細描述你想達到的目標,否則你有可能收到「XY問題」評論。請顯示代碼和標題的例子並描述所需的效果。總之試試[mcve]。 – Yunnosch
這是一種雞和雞蛋的問題;-) –