在Eclipse-CDT中使用* relative *路径引用第三方库

时间:2009-07-06 23:47:20

标签: c++ eclipse-cdt

在Eclipse-CDT中使用相对路径引用第三方C ++组件(例如包含库)的最佳做法是什么?

  • 我正在尝试引用Boost和Google protobuf。
  • 我把它们放在工作区的一个文件夹中,例如/家庭/用户/工作区/ boost_1_39_9
  • 我在项目属性中的构建设置下添加了对该文件夹的引用,但是eclipse不允许我指定该路径作为相对于工作区文件夹,我必须使用文件系统选择它并指定绝对路径< / LI>

感谢,

  • 亚历

4 个答案:

答案 0 :(得分:6)

Eclipse变量(例如$ {workspace_loc}和$ {project_loc}仅适用于 in 运行时Eclipse工作区中的内容。当你说你把它们放在文件系统的工作区下时,你是否真的将文件导入Eclipse(使用新项目;或在现有项目中创建链接文件夹)?

如果文件存在于文件系统中而不存在于Eclipse本身中,那么Eclipse将只能使用绝对路径访问它们。

BTW,CDT有自己的变量:$ {WorkspaceDirPath} $ {ProjDirPath} $ {ProjName},它扩展到特定的文件系统位置。

答案 1 :(得分:1)

我不确定CDT构建设置的路径(不在我的计算机上),但是你不能使用工作区变量吗?类似于:$ {workspace_loc} / boost_1_39_9

编辑:好的,我做了一些搜索并找到了有关这些变量的一些信息here。我想你想要的是:$ {project_loc:/ boost_1_39_0}?

答案 2 :(得分:1)

我使用Preferences-&gt; General-&gt; Workspace-&gt; Linked Resources选项解决了这个问题。

基本上,您定义了一个指向工作区文件夹的变量。

然后使用添加文件夹 - >高级 - >链接到文件系统中的文件夹,将第三方文件夹添加到项目中,并使用变量...按钮使用先前创建的变量指向第三个 - 派对文件夹(使用“扩展”按钮)。

然后,您只需将文件夹添加到项目设置中的包含和库路径。

像蛋糕一样容易......:S

答案 3 :(得分:0)

只是一个想法..你试过安装boost,包括在/ usr / include和/ usr / lib /或/ lib下。然后只需在构建首选项中添加这些路径。我有类似的问题,但后来我们通过使用自定义makefile解决了它。它对我们有用,因为我们已经有了自定义构建框架,只需要对现有的makefile进行一些更改并将其复制到该项目中。