我在设置Eclipse C ++项目时遇到了麻烦。我需要链接来自不同目录的源,在我的环境中我需要实际移动的源(例如,当我总是想要当前位于像/aaa/bbb/v1.2.3/src
这样的目录中的子系统的最新版本时)。我总是通过linux环境变量知道我想要的源的位置,比如$SYSTEM1_LATEST_ROOT
。如果没有这个,我需要在我应该从新位置选择源时更新我的所有项目。
我找不到将环境变量包含在链接资源路径中的方法。包含目录完美运行(这些目录在我的.cproject
文件中定义),例如(.cproject
):
<option id="..." name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
...
<listOptionValue builtIn="false" value="${SYSTEM1_LATEST_ROOT}/src"/>
...
</option>
对于链接资源(在.project文件中定义)我知道我可以使用路径变量,但这些只在Eclipse中定义,我发现没有办法让它们基于环境变量,而只是相对于我自己的项目位置,这不是我想做的。
简而言之,我想根据环境变量从位置链接源代码。变量名是常量,但源的实际位置(通过环境变量已知)不是。
带有相对于项目的路径的工作示例。这不是我想要的(.project):
<linkedResources>
<link>
<name>System1_src</name>
<type>2</type>
<locationURI>PARENT-6-PROJECT_LOC/src</locationURI>
</link>
</linkedResources>
我想做的非工作示例(.project):
<linkedResources>
<link>
<name>System1_src</name>
<type>2</type>
<locationURI>${SYSTEM1_LATEST_ROOT}/src</locationURI>
</link>
</linkedResources>
有什么建议吗?
答案 0 :(得分:4)
在等了一个月后,我想到了我用自己的发现回答的时间..
首先,路径变量的概念(http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.platform.doc.user/concepts/cpathvars.htm);
"Linked resource target paths can be either defined
as absolute paths, or relative to a path variable."
两种选择;绝对路径或相对于路径变量。
具体说说路径变量:
"Each project contain a pre-defined set of path
variables available for defining linked resources,
including ECLIPSE_HOME, PARENT_LOC, PROJECT_LOC and
WORKSPACE_LOC.
New path variables can be defined relative to
existing path variables by using the ${VAR} syntax.
For example, a path variable FOO can be defined
relative to BAR by defining it to "${BAR}../foo"."
换句话说,路径变量总是以某种方式相对于项目位置,使用对项目这个词的自由解释。
所以下一个选项是绝对路径。包含环境变量的绝对路径可以工作!
"The linked resource target path can be changed by
selecting the Edit... button in the File > Properties >
Resource property page of the linked resource. "
尝试这一点很明显,只有路径变量作为链接资源路径的一部分得到支持。我们已经知道了路径变量的定义。
答案是......
Eclipse不包含这个非常基本的功能。
任何人,请证明我错了!
答案 1 :(得分:3)
我以为我会在这里添加我的问题解决方案,以便其他人可以从中受益。
虽然“默认情况下”不支持,但事实证明Eclipse可以使用路径变量。这里的关键是使用其“链接资源”功能。转到窗口 - &gt;偏好 - &gt;一般 - &gt;工作区 - &gt;链接的资源并在那里添加路径变量。