2011-10-05 25 views
0

我工作的一些C++代碼,包括一些小的XML解析使用TinyXML的的。因爲我知道Python的,但不能使,我使用scons的,並得到以下scons的輸出:克++無法找到包括儘管絕對地址目錄傳遞在

scons: Reading SConscript files ... 
scons: done reading SConscript files. 
scons: Building targets ... 
g++ -o Release-cygwin/SDLWin.o -c -ISDLWin -I/cygdrive/d/Jason/Projects/Libraries/tinyxml/2.6.2/ 
-I/cygdrive/d/Jason/Projects/Libraries/boost-1.47.0/boost_1_47_0/ 
-I/cygdrive/d/Jason/Projects/Libraries/sdl/1.2.14/include SDLWin/SDLWin.cpp 
SDLWin/SDLWin.cpp:36:21: fatal error: tinyxml.h: No such file or directory 
compilation terminated. 
scons: *** [Release-cygwin/SDLWin.o] Error 1 
scons: building terminated because of errors. 

我檢查的路徑,他們都OK。此項目是用細VS2010使用相同的include路徑(壽它們不與/ cygdrive開頭!)

有問題的LOC僅僅是

#include "tinyxml.h" 

我使用類似DOS的路徑規範嘗試而不是cygwin,但生成的奇怪的代碼包含路徑。我在這個錯誤上看到的所有評論都表明路徑已經搞亂了,或者沒有設置,但是我使用絕對路徑指向VS包含的相同包含文件,所以不知道發生了什麼。

TIA, -J

編輯:現在我有一個Ubuntu 11(64位)VM和試圖建立使用scons的上,在同一問題產生的代碼。

回答

0

按照man pagescons在Win32喜歡使用MinGW的工具鏈。它甚至可能不知道如何找到Cygwin g++命令。 (你有沒有安裝MinGW的?)

如果我沒有記錯,MinGW的使用MSYS,其中有一些相似之處,但Cygwin的是(故意)少得多能力。具體而言,我認爲MSYS指D:\ Windows驅動器爲/D,不/cygdrive/D

要麼調整您的SConscript文件(如有必要,請使用源代碼)以便與MinGW兼容,或者弄清楚如何使scons調用Cygwin gcc工具鏈。

+0

使用SCons僅在Win32喜歡的MinGW在Cygwin的使用* Windows的本地* Python解釋器時建立。我直接從cygwin提示符運行,所以這不是問題。 gcc/g ++正在執行並生成輸出的事實意味着它肯定會被發現;一個「哪個g ++」產生「/ usr/bin/g ++」,這就是所謂的scons,並不是指定一個工具路徑。順便說一句,不,我沒有安裝mingw。 – greenbutterfly

0

問題原來沒有cygwin的,蟒蛇,Ubuntu或者GCC的。我從頂級目錄中調用scons,但是它將目錄級別傳遞給代碼和SConscript文件......這意味着傳遞路徑時路徑不正確。實際的-I路徑是相同的,但是在我用來設置提升路徑的環境變量的前面增加一個額外的「../」,這意味着它的工作。

+0

您應該將此添加爲對您的問題的回答或評論的評論,而不是本身的答案。 –

相關問題