2013-03-12 21 views
0

這讓我瘋狂,這是我的文字複製粘貼代碼,Gedit使用8的製表符。它仍然抱怨缺少分隔符。我完全按照手動語法。我沒有使用某種自動將製表符變爲空格的設置。Make:遺失分隔符錯誤,儘管使用標籤

Tubes : TubesWithVaryingRadiusAndColors.cxx 
    gcc -c TubesWithVaryingRadiusAndColors.cxx 

在它上面似乎改變在4個空格選項卡(我可以看到,試圖將其選中,在打字窗口是一個字符,但如果你選擇了它,這將是4碼空格)。

編輯:

如果我使用leafpad,它的工作原理。什麼是Gedit做錯了?

的hexdump都可以是:

0000000 494c 4442 5249 3d20 2f20 7375 2f72 696c 
0000010 2f62 7476 2d6b 2e35 2f38 540a 6275 7365 
0000020 3a20 5420 6275 7365 6957 6874 6156 7972 
0000030 6e69 5267 6461 7569 4173 646e 6f43 6f6c 
0000040 7372 632e 7878 090a 6367 2063 632d 5420 
0000050 6275 7365 6957 6874 6156 7972 6e69 5267 
0000060 6461 7569 4173 646e 6f43 6f6c 7372 632e 
0000070 7878 2d20 2049 7b24 494c 4442 5249 007d 
000007f 
+0

工作正常,我一個標籤。最後這個空字符有點奇怪,但正如我所說的,對我來說工作得很好('make:***沒有規則來製作'TubesWithVaryingRadiusAndColors.cxx',這是'Tubes'所需要的。Stop.')。 – bobbogo 2013-03-12 18:54:39

回答

0

嘗試在您Makefile運行hexdump。然後,您將完全確定選項卡是如何編碼的。

0

打開你的gedit的編輯喜好,即Edit->Preferences->Editor,取消選中Insert spaces instead of tabs

嘗試再次在Makefile中插入製表符,這次它應該工作。

順便說一句,8個空格的製表符寬度不等於hard-tabGedit似乎會自動替換爲製表符字符8 spaces,但Makefile預計製表符將出現在每個recipe的規則開頭。

如果您正在使用像vim編輯器會自動處理插入硬標籤指定的規則,你可以手動插入使用按Ctrl-V-Tab鍵

+0

就像我說的那樣,它確實是一個標籤,我不知道是什麼樣的。 「插入空格而不是製表符」已被取消選中。還有哪些vim我使用?我嘗試了vim-athena和vim,但我仍然無法找到該程序。 – 2013-03-12 16:48:32

+0

@ PatronBernard,你可以發佈'od -t a Makefile'的輸出,因爲它會更容易解釋嗎?順便說一句,你的hexdump與我看到的Makefile中幾乎相同的內容的十六進制轉儲不匹配,出於某種原因,可能字符集是不同的? – Tuxdude 2013-03-12 16:58:52

+0

我想是的,Gedit會做這樣的事情很奇怪。我從來沒有碰過/修改它。非常令人沮喪。我只想轉換到我認爲的Vim。 – 2013-03-12 17:12:55