2014-07-16 100 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文件,使包含更多一点痛苦免费。