0

不知道如何表达这个问题。

我为我的 c 项目创建了一些文件,我想将它们用于多个项目。

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

我能够将它们从我的 eclipse(Code Composer Studio)工作区中移动,并用符号链接替换它们到它们的新位置。

Custom lib dir: ~/myfiles/customlib

这工作正常,但我宁愿不使用符号链接,因为有必要将这些符号链接添加到我想要我的 customlib 文件的任何项目中。此外,当在 Eclipse 中复制/粘贴项目时,它似乎不理解符号链接并创建文件的副本而不是符号链接。

我已经设置了 ~/myfiles/ 的包含路径,但是当我编译时,我得到了一堆未解决的符号错误。

我的自定义文件也依赖于其他包含路径中的文件。(如果这可能暗示事情为什么会破裂)

还有其他方法可以链接这些文件吗?

4

1 回答 1

0

我想出了如何做我正在寻找的事情,但实际上无法在 8 小时内发布答案,所以我会在这里回答。

我能够将 .c 文件作为“链接资源”添加到我的项目中。

所以最后我有一个 ~/myfiles 的包含路径和一个链接资源 ~/myfiles/customlib/myfile.c。

链接资源可以在项目属性 -> 资源 -> 链接资源 -> 链接资源(选项卡)下找到

不幸的是,我的环境(Ubuntu 上的 Code Composer Studio 6)不允许我通过 IDE 实际添加链接资源。

作为一种解决方法,我将链接资源直接添加到 .project 文件中。

~/workspace/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/../../(又名 ~/)。2 告诉它有多少 ../ 的

如果您第一次没有正确获取 locationURI,您应该能够从项目属性 -> 资源 -> 链接资源 -> 链接资源(选项卡)编辑文件路径

您可以为 locationURI 使用任何已定义的构建变量。这是另一种编写位置 URI 的方法。PROJECT_LOC/../../myfiles/customlib/myfile.c

由于这是一个 Eclipse 项目文件,它将被 Eclipse 决定的 locationURI 正确格式覆盖

您可以通过修改标签将链接的资源放入项目中的文件夹中。项目子文件夹/myfile.c。这将在您的项目目录下创建一个文件夹 projectsubfolder。~/workspace/myproject/project子文件夹

不幸的是,这不是一个最佳解决方案,因为我需要为我在自定义库中创建的每个源文件添加链接资源条目。CCS 在进行项目复制/粘贴时会摸索链接资源,要求您将链接资源再次添加到复制的项目中。

最后,它感觉像是一个解决方案,但与符号链接文件相比,它确实没有太多好处。唯一的一点是,当我复制/粘贴一个项目时,我会知道该项目在不编译时没有使用正确的文件。(符号链接将使用文件副本而不是原件创建一个工作项目)

我想我需要学习创建 .lib 文件以使包含更轻松。

于 2014-07-17T16:27:58.000 回答