Eclipse项目按环境变量链接的资源 我在安装Eclipse C++项目时遇到了麻烦。我需要从不同的目录在这里和那里链接源代码,在我的环境中,我需要的源代码有时会移动(例如,当我总是想要当前位于目录中的子系统的最新版本时,如/aaa/bbb/v1.2.3/src)。我总是通过linux环境变量知道我想要的源代码的位置,比如$SYSTEM1\u LATEST\u ROOT。如果没有这个,每当我从一个新的位置选择源时,我都需要更新我的所有项目

Eclipse项目按环境变量链接的资源 我在安装Eclipse C++项目时遇到了麻烦。我需要从不同的目录在这里和那里链接源代码,在我的环境中,我需要的源代码有时会移动(例如,当我总是想要当前位于目录中的子系统的最新版本时,如/aaa/bbb/v1.2.3/src)。我总是通过linux环境变量知道我想要的源代码的位置,比如$SYSTEM1\u LATEST\u ROOT。如果没有这个,每当我从一个新的位置选择源时,我都需要更新我的所有项目,c++,linux,eclipse,eclipse-cdt,environment,C++,Linux,Eclipse,Eclipse Cdt,Environment,我找不到在链接资源的路径中包含环境变量的方法。Include目录工作正常(它们在我的.cproject文件中定义),例如(.cproject): ... ... 对于链接的资源(在.project文件中定义),我知道我可以使用路径变量,但这些变量仅在Eclipse中定义,我无法基于环境变量使用它们,只能相对于我自己的项目位置,这不是我想要做的 简言之,我希望基于环境变量从位置链接源代码。变量名是常量,但源的实际位置(通过环境变量知道)不是常量 具有相对于项目的路径的工作示例。这不是我想要的(

我找不到在链接资源的路径中包含环境变量的方法。Include目录工作正常(它们在我的
.cproject
文件中定义),例如(
.cproject
):


...
...
对于链接的资源(在.project文件中定义),我知道我可以使用路径变量,但这些变量仅在Eclipse中定义,我无法基于环境变量使用它们,只能相对于我自己的项目位置,这不是我想要做的

简言之,我希望基于环境变量从位置链接源代码。变量名是常量,但源的实际位置(通过环境变量知道)不是常量

具有相对于项目的路径的工作示例。这不是我想要的(.project):


系统1_src
2.
父-6-项目位置/src
我想做什么的非工作示例(.project):


系统1_src
2.
${SYSTEM1\u LATEST\u ROOT}/src

有什么建议吗?

等了一个月后,我想是时候用我自己的发现来回答了

首先,路径变量()的概念

两种选择;绝对路径或相对路径变量

它特别提到了路径变量:

"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不包含这个非常基本的特性


任何人,请证明我错了

我想我应该在这里为这个问题添加我的解决方案,这样其他人可能会从中受益

虽然“默认情况下”不支持,但事实证明Eclipse可以使用路径变量。这里的关键是使用它的“链接资源”功能。转到窗口->首选项->常规->工作区->链接资源,并在那里添加路径变量


感谢您分享您的发现。我目前在使用基于eclipse的IDE时也经历了类似的痛苦。但是,如果您可以使用${VAR},那么如果您尝试了${SYSTEM1\u LATEST\u ROOT}./src,您的应用程序是否有效?我认为只有当
路径变量的值
可以包含
环境变量
,例如
${FREESCALE}/KSDK_1.1.0
时,这才能回答我的问题。关键是,我希望链接的资源能够基于某个管理员设置的环境变量进行链接,该管理员可以控制我的环境。是的,我认为这会是一个问题。您是否尝试过使用env变量作为值,但发现它确实不起作用?是的,使它如此恼人的是,它完全适用于包含路径,但不适用于链接资源。我不太认识你的截图,所以我可能会尝试另一个更新的eclipse版本,但我已经有一段时间没有处理这个问题了。当时我真的觉得我已经测试了编辑linkedResource xml的所有可能的方法。@MartinG此后有什么变化吗?我们还不能在这里使用环境变量吗?
<linkedResources>
    <link>
        <name>System1_src</name>
        <type>2</type>
        <locationURI>${SYSTEM1_LATEST_ROOT}/src</locationURI>
    </link>
</linkedResources>
"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. "