2014-07-16 134 views
0

不知道如何解釋問題。eclipse包含自定義文件(c)

我爲我的c項目創建了幾個文件,我想用於多個項目。

Project root: ~/workspace/myproject 
Files : 
    ~/workspace/myproject/customlib/myfile.h 
    ~/workspace/myproject/customlib/myfile.c 

我可以將它們從我的日食(Code Composer Studio的)工作區移動和符號鏈接到新的位置替換它們。

Custom lib dir: ~/myfiles/customlib 

這是工作正常,但因爲它成爲必要的添加符號鏈接,我想我的customlib文件中的任何項目,我寧可不使用符號鏈接。另外,在eclipse中複製/粘貼項目時,它似乎並不理解符號鏈接,而是創建文件的副本而不是符號鏈接。

我已經設置了〜/ myfiles /的包含路徑,但是當我編譯時,我得到了一堆未解決的符號錯誤。

我的自定義文件也依賴於來自其他包含路徑的文件。 (如果這可能暗示爲什麼事情正在破裂)

有沒有另外一種方法可以鏈接到這些文件中?

+0

把你的通用文件放到一個靜態或共享庫的庫項目中怎麼樣?然後你的其他項目將與該圖書館鏈接。包含路徑只是告訴項目標題所在的位置。您仍然必須鏈接某些內容才能解析這些標頭中的符號。 – indiv

+0

我不熟悉使用項目作爲資源來做這件事很舒服。我擔心的是我的編譯代碼可能會比所需的更臃腫。 – user3817250

回答

0

我想出了我可以如何做我正在尋找的東西,但實際上不能發佈8小時的答案,所以我會在這裏回答。

我能夠將.c文件作爲「鏈接資源」添加到我的項目中。

所以最後我有一個包含路徑〜/ myfiles和鏈接資源〜/ myfiles/customlib/myfile.c。

鏈接的資源可以在項目屬性中找到 - >資源 - >鏈接的資源 - >鏈接的資源(標籤)

不幸的是,我的環境中,Code Composer Studio的6 Ubuntu上不肯讓我實際添加一個鏈接資源通過IDE。

作爲解決方法,我將鏈接資源直接添加到.project文件。

〜/工作區/ myproject的/的.project

在標記爲 「性質」 我加入

<linkedResources> 
    <link> 
     <name>myfile.c</name> 
     <type>1</type> 
     <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/myfiles/customlib/myfile.c</locationURI> 
    </link> 
</linkedResources> 

的部分中的 「$%7BPARENT -2- PROJECT_LOC%7D」 是指〜/ workspace/myproject /../../(aka〜/)。 2告訴它有多少../'s

如果你沒有得到locationURI的權利,第一次你應該能夠從項目屬性 - >資源 - >鏈接資源 - >鏈接編輯文件路徑資源(選項卡)

您可以使用locationURI的任何已定義的構建變量。這是編寫位置URI的另一種方法。 PROJECT_LOC /../../ myfiles的/ customlib/myfile的。ç

由於這是它會與任何月食決定重寫一個Eclipse項目文件是locationURI

正確的格式,您可以通過修改標籤放置鏈接的資源到項目的文件夾。 projectsubfolder/myfile.c文件。這將在您的項目目錄下創建一個文件夾projectsubfolder。 〜/工作區/ myproject的/ projectsubfolder

不幸這不是一個最佳的解決方案我將需要添加linkedresource條目每個源文件我在自定義的LIB創建。 CCS在執行項目複製/粘貼時會欺騙鏈接的資源,要求您再次將鏈接的資源添加到複製的項目中。

最後,它感覺就像一個解決方案,但它確實沒有比符號鏈接文件有太多好處。唯一的一個問題是,當我複製/粘貼一個項目時,我會知道項目在編譯時沒有使用正確的文件。 (符號鏈接將使一個工作項目與文件的副本,而不是原件)

我想我需要了解創建.lib文件,使包含更多一點痛苦免費。