2010-09-09 26 views
1

我試過使用與visual studio一起工作的/Fc標誌,但得到一條消息,說明它不被intel編譯器識別。如何將__FILE__作爲英特爾C++編譯器的絕對路徑

我想寫一個測試,使用相對於cpp測試文件的目錄中的數據,但可執行文件將部署在其他地方,所以很難得到它相對於exe文件...因此,我想編譯時的絕對路徑!我怎麼能得到一個相對於當前cpp文件的路徑?

回答

1

這顯然是英特爾編譯器中的一個錯誤,它默默接受,然後忽略應該觸發絕對路徑的/ FC標誌。我可以找到的最佳解決方案來自於我在Intel論壇上發佈的這個主題:

要讓__FILE__生成絕對路徑,它必須位於通過「附加包含目錄」包含的頭文件中這必須是絕對路徑。

例如創建一個文件test.h這是一個目錄「test_include」,這是不是來自直接訪問你的include路徑,則包括文件使用時:

#include "test.h" 

,並確保該目錄是在其他指定include目錄部分絕對路徑,你可能需要做的宏一些擺弄......我包括線路是這樣的:

"$(InputDir)..\include\test_include" 
0

你試過__BASE_FILE__

它在http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/main_cls_lin.pdf在第170頁有記錄。它不是ANSI標準,但gcc也支持它。用一些骯髒的#ifdef技巧可以使它適用於所有的編譯器。

不幸的是,我沒有英特爾編譯器來檢查它。

+0

感謝偉大的挖入不良記錄功能。不幸的是,這返回與__FILE__相同的東西,這是一個相對文件路徑。 – 2010-09-10 07:53:22

相關問題