2009-08-07 35 views
2

我使用的Eclipse CDT與定製的makefile一個C項目,我想使用無效代碼高亮作爲答案提出質疑739230。自動發現活動/定義的符號不適用於我的makefile。相反,我爲每個構建目標創建了一個文本文件,其中列出了活動符號。積極處理器符號到Eclipse CDT

所以我的問題是:

  1. 如何加載這些設置成一個項目,而不通過GUI會(文件夾屬性 - >路徑和符號 - >符號)?
  2. 我該如何選擇符號添加到哪個配置/構建目標?

直接編輯的.cproject文件並添加行這樣的工作:

<listOptionValue builtIn="false" value="HIRES_OUTPUT"/> 

但是,只有當我去通過GUI創建每個構建目標的第一個關鍵。我寧願創建構建目標並在一個操作中導入符號。

從頭開始編寫一個Eclipse插件似乎是大材小用執行此任務。

一個更聰明的方式來做到這一點任何想法?

回答

1

導入/導出嚮導可以處理符號定義。使用File-> Import並選擇C/C++項目設置。

導入嚮導所需的XML格式可以從活動符號與小扔掉的腳本文本文件被創建。

我用以下Python腳本:

# 
#  Tool to import a list of defined symbols into Eclipse IDE for code highlighting. 
# 
#  Takes a _cdef.txt file (generated during library build) and converts to an XML file 
#  suitable for import into Eclipse 
#  Use stdin and stdout for input and output. 

import sys 
import string 

header = [ 
'<?xml version="1.0" encoding="UTF-8"?>', 
'<cdtprojectproperties>' 
, 
'<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">', 
'<language name="holder for library settings">', 
'', 
'</language>', 
'<language name="GNU C++">', 
'', 
'</language>', 
'<language name="GNU C">', 
'' 
] 

sys.stdout.write (string.join(header, '\n')) 


text=sys.stdin.readlines() 
tokens = string.split(string.strip(text[0]),',') 
for curtok in tokens: 
    lines = ['<macro>', 
    '<name>' + string.strip(curtok) + '</name><value></value>', 
    '</macro>', ''] 
    sys.stdout.write(string.join(lines, '\n')) 

footer = [ 
'', 
'</language>', 
'<language name="Assembly">', 
'', 
'</language>', 
'</section>', 
'</cdtprojectproperties>', 
''] 
sys.stdout.write (string.join(footer, '\n')) 

輸入到腳本是逗號分隔的有源符號的文本文件中,所有的第一行。

0

另一種方法是使用項目設置XML並添加所有必需的宏在那裏。您可以生成一個基本的XML文件

右鍵單擊項目 - >轉到屬性 - > C/C++常規 - >路徑和符號 和在符號選項卡中,添加一些預處理器爲GNU C或GNU C++和使用窗口底部的「導出設置」鏈接將這些設置導出爲文件。然後手動編輯XML文件以獲取新的宏,並使用上述選項中的「導入設置」按鈕導入。

使用保存的文件作爲模板爲所有其他項目,並在項目創建時,一旦將其導入。