自從將X ++ 3.2.6的C++項目升級到Xcode 4.5.1以來,我有過最奇怪的#include文件問題:#include頭文件我的一個靜態鏈接庫無法找到。整個項目中我沒有其他未定義的符號錯誤。Xcode#包含從3.2.6更新到4.5.1之後的文件問題
#包括位於一個前綴頭,「MacClient_Prefix.pch」(我不是預編譯頭):
#include "Framework/Base/BaseEnvironment.h"
這個頭文件(BaseEnvironment.h)位於AA完全不同的文件夾層次與靜態鏈接庫有關。
的錯誤:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/WordMenuBaseEnv.h
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/WordMenuBaseEnv.h:26:10: 'Framework/Base/BaseEnvironment.h' file not found
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/<built-in>:148:2: In file included from <built-in>:148:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/<command line>:4:10: In file included from <command line>:4:
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/MacClient_Prefix.pch:9:10: In file included from
/Users/StephenDev/Documents/dev/WordMenu/Projects/MacClient/Xcode/MacClient_Prefix.pch:9:
我相當肯定的用戶頭文件路徑是否正確設置項目。
奇怪的是,如果我註釋掉#include,那麼我會從代碼的其餘部分得到幾百個實際的錯誤,用於丟失符號。很顯然,當使用前綴頭文件編譯項目文件時,會找到文件。
我甚至試圖明確指定#include中頭文件的完整路徑,但是破壞了包含項目構建的其餘部分。
我在構建選項中包含路徑是項目相對的,我認爲這可能與此問題有關。問題可能與衍生數據或中間體的包含路徑有關嗎?
包含在具有錯誤的「main」項目中的靜態鏈接庫的生成項目確定頭文件爲「public」。但是,主要項目的乾淨構建/重建不會(現在)似乎重新構建靜態鏈接庫。
你是對的,但我仍然不確定爲什麼我找不到文件 - 它好像應該沿着我指定的路徑。 – SMGreenfield 2013-03-27 22:22:49
應該有一個標記可以添加到編譯器中,以便它可以告訴您搜索的路徑以幫助您調試。我現在不記得它。 – bames53 2013-03-27 22:27:11
謝謝 - 這是問題所在。用戶包含的路徑被關閉了一個「/ ..」,並掩蓋了所有其他錯誤消失的事實。我沒有找到這面旗幟 - 在未來知道它會很高興。 – SMGreenfield 2013-03-28 00:00:17