我是Eclipse-CDT的新手,第一次建立了一个新项目。我试图引用Boost 而不用硬编码绝对路径。
我在工作区文件夹中添加了boost,例如/家庭/用户/工作区/ boost_1_39_0
然后我希望添加一个相对于工作区指向该文件夹的include目录,但是Eclipse不会这样做,它似乎只想指向/ home / user / workspace / [MyProjectNameHere] < / p>
任何提示?将Boost复制到我的项目文件夹似乎没有意义,因为它出现在Eclipse中,而Eclipse想要构建它(当然,我可以排除它)。
答案 0 :(得分:12)
在CDT项目中添加包含文件路径(项目属性/ C / C ++通用/路径和符号)时,有3个按钮可以浏览位置:
如果按工作区...按钮,路径将相对于工作区/项目。如果选择“变量...”按钮,则可以合并${WorkspaceDirPath}
等变量。这些变量还可以引用环境变量,如果您希望从可能位于您计算机上任何位置的项目中引用单个boost的安装,这可能很方便。
如果将变量合并到路径中,请确保选中“是工作空间路径”选项 - 否则,当您按“确定”而不是保留要在构建时评估的变量时,变量似乎得到评估。 / p>
答案 1 :(得分:4)
我的工作大致与Michael Burr上面提到的一样:
在Project Properties / C / C ++ General / Paths and Symbols下,我添加了这样的路径:
$ {ProjDirPath} /../ boost_1_39_0
答案 2 :(得分:2)
IIRC,您应该能够右键单击该项目并进入C / C ++常规设置。从那里,您可以为项目添加特定的包含目录以供参考。这里有几个可能有帮助的链接...
答案 3 :(得分:1)
我正在使用Eclipse Luna,并发现接受的答案不再准确。经过一番头疼之后,过去几年似乎发生了一些变化(至少,这是我系统上发生的事情):
-I
或其他相关开关的构建命令行因此,为了实现这一点,我必须输入${ProjDirPath}/../whatever
作为非工作空间相对路径,并且该变量在编译时才会展开。