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/tm4c129encpdt:CCSv7:未保存从生成中排除(和其他项目设置)

Guru**** 2587345 points
Other Parts Discussed in Thread: EK-TM4C129EXL, TM4C1294NCPDT, TM4C129ENCPDT

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/602916/ccs-tm4c129encpdt-ccsv7-exclude-from-build-and-other-project-settings-not-saved

零件号:TM4C129ENCPDT
主题中讨论的其他部件:EK-TM4C129EXLTM4C1294NCPDT

工具/软件:Code Composer Studio

使用CCSv7版本7.1 .0.0.0016万 ,我有一个具有四种生成配置的项目:

调试

DEBUG__GNU

释放

release__gnu

以__GNU结尾的两种构建配置是使用GCC构建的;另外两种配置是使用TI编译器构建的。

因此,该项目包含两个不同的链接程序脚本和两个不同的C启动文件。

使用GCC构建时,我需要从构建中排除TI所需的两个文件;为TI构建时,我需要排除GCC所需的两个文件。

遗憾的是,对于两种TI配置,此信息未保存。 GCC配置记得不要使用TI配置的链接器脚本和C启动文件,但TI配置一直在尝试将GCC链接器脚本和C启动文件包括在内置中。 告诉它排除文件仅适用于当前会话。 关闭和重新打开CCS将恢复TI的构建配置,以便在构建中包括GCC文件。

我可以验证.cproject,.ccsproject或.project文件中没有任何更改,因为这些文件受版本控制,无论我们告诉它多少次从生成中排除这些文件,SVN都显示这些文件未更改。

这是不可接受的,因为我们的版本取决于项目设置,必须可靠地保存和保存项目设置!

我们还注意到,有时我们必须在"项目属性"中多次更改设置才能记住它。 值得注意的是,在编译器设置中添加预定义符号有时需要多次执行。 如果关闭“项目属性”并重新打开它,则刚添加的符号将消失,必须重新添加。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他实验发现了一些有助于开发小组解决此问题的方法:

    如果在项目资源管理器中右键单击文件并告诉它将其从生成中排除,则这些文件在该生成配置中将变为灰色。 但这不会写入.cproject,因此一旦关闭CCSv7,就会忘记它。

    但是,如果您执行相同的步骤(右键单击,从生成中排除),然后右键单击项目,打开"项目属性", 并进行一些更改,例如在列表中向上移动编译器符号,然后再向下移动,只是为了使“项目属性”对话框识别已进行的更改,并通过单击“确定”关闭该对话框, 然后将设置写入.cproject中,包括以前执行的“从生成中排除”。

    换言之,当您关闭“项目属性”对话框时,将写入.cproject。 未在该对话框中设置从生成中排除,因此不会触发CCS中的保存逻辑。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    有关要排除的文件的信息存储在.cproject文件中(在"<entry excluding"标记下)。 当您在项目资源管理器视图中排除文件时,信息应立即写入.cproject。 我可以在我的7.1 4.0环境中看到此行为。

    我不知道它是否与版本控制和CCS有关。 您是否正在使用任何Eclipse插件进行SVN集成? 您是否可以尝试一个简单的方案来处理不在版本控制中的项目和文件,并查看.cproject是否立即更新?

    谢谢
    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我测试了它是否与版本控制相关。 这似乎没有什么不同。

    我创建了一个没有任何版本控制的新目录,并使用普通操作系统工具复制文件,将我们的项目复制到其中。 我确保没有复制任何隐藏的.svn目录。 我还创建了一个新的空工作区,并将此非版本控制项目导入其中,以确保工作区不会影响其行为。 即使如此,在项目资源管理器中对包括/排除的文件所做的更改也不会保存。 (使其保存的唯一方法是使用我前面介绍的变通办法--打开项目设置,进行一些更改并应用更改。)

    我们没有任何用于SVN集成的eclipse插件,也没有任何用于此问题的SVN GUI。 事实上,我们一直直接从命令行操作SVN。

    我们正在Windows 10 7.1 x64家庭版1607 Build 1.4393万.1198</xmt-block>1198 with Java 8 1.8 131 Build.0_131-B11上使用CCSv7版本.0.0.0016万 (据我所知,这三个版本都是最新版本)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我以前使用的是Windows 7-64。 我也在Win10-64上试用过,但仍然无法复制。

    其他一些问题:
    -您的工作空间文件夹路径是什么?
    -您拥有什么类型的帐户(管理员或用户权限)?
    -是否可以暂时禁用任何防病毒/安全软件并重试?
    -您能否提供项目和相关的源文件? 它不一定是您的实际项目,而是一些简单的示例,前提是您可以重现问题。

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

    工作空间文件夹路径:E:\workspace\CCS_Workspace。

    我们的项目位于E:\workspace下,但不在CCS_Workspace文件夹内。

    CCS,编译器,TivaWare等都安装在C:\ti下。

    我的用户帐户(此计算机上唯一的用户帐户)是管理员帐户。

    我创建了一个测试项目,该项目在我们的最后再现了该问题。该项目位于我们的系统驱动器E:\中

    此zip文件中的目录和文件如下所示:

    TestWorkspace -主目录(直接位于驱动器E:下)

    TestWorkspaces\CCS_Workspace - CCSv7工作区

    TestWorkspaces\Projects -用于保存CCSv7项目的目录

    TestWorkspaces\Projects\TestProject -重现该问题的测试项目

    我创建了测试项目,方法是删除除在1 Hz 50 % 占空比下编译,运行和闪烁LED所需的最低代码之外的所有代码。 此代码在EK-TM4C129EXL LaunchPad上运行。

    我进行了广泛的测试。 要重现该问题:

    1.打开项目并切换到其中一个TI构建配置(调试或发布)。

    2.确认文件tm4c129encpdt_startup_gcc.c和tm4c1294ncpdt_gnu.lds (用于GCC)未从构建中排除并导致错误。

    3.在Project Explorer中单击鼠标右键,然后为这些文件设置“从生成中排除”。

    4.确认此生成配置现在已成功生成(我使用Project -> Clean执行完全清除生成)。

    5.退出并重新启动CCS

    6.确认文件不再从构建中排除并导致错误。

    这些步骤重现了问题。

    我刚刚注意到,在步骤5之前启动调试会话会导致保存项目。 但是,在不启动调试会话的情况下执行全新构建并不能。

    项目和CCS工作空间: e2e.ti.com/.../TestWorkspace.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供出色的测试案例。 很遗憾,我无法再现

    我将TestWorkspace文件夹复制到Win10-64笔记本电脑上E:\的根目录。

    然后,我使用工作区E:\TestWorkspace\CCS_Workspace启动了7.1

    我在项目资源管理器视图中看到了MasterHardware项目。 活动配置为"释放"。

    我在外部编辑器中打开了.cproject

    然后,使用“项目资源管理器”,从“发行”配置(默认情况下处于活动状态)中排除了tm4c129encpdt_startup_gcc.c和tm4c1294ncpdt_gnu.lds文件。

    我的外部编辑器通知我,.cproject已被修改,如果我要重新加载该文件。 我说"是",并注意到第87行中的文件有一处修改:
    <entry Exclude="tm4c129encpdt.cmd|tm4c129encpdt.lds|tm4c129encpdt_startup_cs.c" flags="value_workspace_path|resolved" ke="SOURCEPATH" name=""/>

    完成了简洁且成功的构建。

    关闭CCS并重新启动它。 这些档案仍被排除在外。

    编辑:我可能已经复制了一次...但我似乎不能再复制了。 也许我误解了一些东西。 但大多数时候我看到.cproject会立即写入。 我不确定差异可能是什么。 我会尝试从工程师那里获得更多信息,以了解更多潜在原因。

    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速回复以及您为跟踪此问题所做的努力。 请让我随时了解最新信息... 如果我发现任何其他可能对其有帮助的信息,我会告知您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    edit:我可能已经复制了一次...但我似乎不能再复制了。 也许我误解了一些东西。 但大多数时候我看到.cproject会立即写入。

    我不知道它是否相关,但有时在添加设置(如"包括路径")时,在项目属性对话框上按"确定"后,发现更改不会保存。 可以看到,在重新打开项目属性的同一页时,最近的更改已丢失。

    已在多个CCS版本上看到过这种情况,但之前未报告为从未设法获得可重复测试案例。

    将设置从一个配置复制到另一个配置时,问题似乎最常发生,这涉及在项目属性中的不同配置之间进行更改。 例如,在7.2 将包含路径从原始调试配置复制到新的Debug_GNU配置时,在Windows 10下的CCS Debug.0.0.0013万 中看到了几次问题。

    编辑:已更正,以便在Windows 10上看到问题,而不是Windows 7上。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chester Gillon,感谢您提及未保存的项目属性的问题。 我在原始帖子的最后一段提到了这一点,但直到现在,我还不确定此问题是否仅影响我的系统。

    我们在添加包含路径和预定义预处理程序符号时注意到了同样的问题。 在我们的设置中,我们还具有调试和调试__GNU构建配置,以使用TI和GCC编译器。 这可能与它有关,因为我们还在项目设置过程中在构建配置之间来回切换。