This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:CCSV6:通过相对路径选择编译器版本

Guru**** 2198890 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/662998/ccs-ccsv6-compiler-version-selection-via-relative-path

工具/软件:Code Composer Studio

我正在尝试构建一个项目足迹,其中包括该构建/发行版中使用的编译器版本。  因此,项目中使用的所有内容都是从“MyProject”文件夹安装的,包括编译器。  这将允许我在不同的位置有多个版本,并且它们都将使用特定于它们的编译器版本。   这意味着所有路径都必须相对于${workspace_LOC},该路径似乎有效...除了:-

我将编译器版本适当地设置到项目区域内的子文件夹(“项目”->“属性”->“CCS常规”->“编译器版本”),它工作正常。  但是,如果我随后将项目移到新的顶层项目文件夹下,编译器版本将丢失,并且它拒绝生成,说编译器版本与以前生成项目时使用的版本不匹配。 这表明CCS使用的路径是绝对路径而不是相对路径,尽管我手动输入了所有构建和环境路径变量,并将它们与${workspace_LOC}相对。

是否有解决方案? 此信息是否存储在配置文件中,我可以修改它? 我很快就会升级到CCSV7,但似乎此功能没有改变,所以我的问题仍然存在吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Andy,

    项目本身不会将位置存储到编译器,而是存储它设置使用的编译器版本。  您将看到在项目中包含"{cG_tool_root}/include"之类的路径。  在生成时,CCS使用选定项目使用的编译器的位置填充CG_TOOL_ROOT宏(以及许多其他类似宏)。  因此,小组成员不需要将编译器安装在同一位置。

    在CCS的“首选项”对话框中,您可以指定它查找编译器的位置。  这是您从项目属性结束的位置。  它只会重定向到此对话框。

    我假设您将编译器放在项目中是为了确保人们使用正确的编译器来生成项目。

    如果要将编译器置于版本控制中,您可能会将它们放在一个公用的顶级文件夹中,然后让您的小组成员将该文件夹(无论它位于计算机上的哪个位置)添加到首选项对话框中。

    此致,

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢John,

    您对我的项目/版本控制结构的假设是正确的。 我们将在不同的MSP430变体上有多个项目,因此如果可能,我希望每个项目中都有编译器。
    您也知道,CCS不会忘记编译器的位置,我检查了相应的环境/路径变量,它们仍然是正确的。 但是,它会忘记编译器版本,在常规属性页上有一个红色标记,并且选择编译器版本对话框中有一个空白字段,用于显示编译器版本。

    编译器版本是否存储在/.metadata文件夹下的配置文件中? 如果您能告诉我可以检查哪个文件。

    Andy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Andy,

    用于项目的编译器版本存储在项目文件中。  特别是在.cproject文件中。

    CCS不应忘记版本。  它将该信息存储在此处:

    <CCS安装目录>/ccsv7/eclipse/configuration/ ccs.properties   

    您能否向我展示您所说的危险信号的屏幕截图?  如果项目设置为使用某个版本,但CCS找不到该版本,而是使用另一个版本,则CCS将在版本号旁边显示很少的指示符。

    在这种情况下,它将显示选定的版本以及将要使用的版本。  这是7.4 中的外观。  在CCSv6.x中,它可能有点不同。

    如果这些版本非常不同,则会显示错误。