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.

[参考译文] 编译器:在Cl6x编译器选项中包括路径选项和-- cmd文件

Guru**** 2618835 points

Other Parts Discussed in Thread: CCSTUDIO

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/654985/compiler-include-path-option-in-cl6x-compiler-option-and----cmd-file

主题中讨论的其他部件:CCStudio

工具/软件:TI C/C++编译器

您好,

我希望我的CCS项目是可移植的,因此我的所有包含路径都以${install_dir}\.....开头

当我使用--include_path选项时,我的Cl6x命令工作正常。

但我希望将我的所有include_path都放在一个cmd文件中,并使用--cmd文件选项,但它 不起作用,编译失败。

当${install_dir}位于cmd文件中时,它看起来不会被解释。

我的用例是,我想在x个项目之间共享一个包含路径的列表,而不想填充x倍的项目属性,只包含一个文件将对我有帮助! 我希望我的include路径是相对的,这就是问题所在。

也许有人可以帮助我? 提前非常感谢您的帮助。

此致。

患者

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

    lavenu patrick1 说:
    ,但我可以将我的所有include_path放在cmd文件中,并使用--cmd file选项,但它 不起作用,编译失败。

    遗憾的是,编译器/链接器读取的文件(如编译器选项文件,链接器命令文件)无法解释CCS变量。 CCS中的include_path选项可以直接引用变量,但该变量不能在传递给编译器shell的文件中使用。  

    您可能可以使用 Eclipse环境变量来实现这一目标(在CCS菜单窗口->首选项->CCS->Environment下)。 基本上,使用分号分隔路径列表创建环境变量,并在项目的编译器的include path选项中使用环境变量。 然后,只需与不同的项目共享环境变量(如果在工作空间级别设置,则工作空间中的所有项目都应了解该变量)。 我尚未对此进行过广泛测试,仍在考虑是否有其他方法可以使用CCS变量来实现这一点。 如果我能想到其他建议,我会告诉您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢阿尔蒂格快速而准确的回答,我将尝试您的建议。

    如果您找到其他建议,请提前向我发送,感谢您的帮助。

    此致。

    Patrick。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我只想补充一点,我已经尝试过,但它不能解决我的问题,即共享x个项目之间的相关include_path列表,而无需在所有项目属性中逐个手动键入它们。

    此致。

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

    我的建议是采取如下行动。

    -使用包含路径列表创建Eclipse环境变量(此处的路径可以引用CCS变量)。  这确实意味着所有用户都需要在其设置中定义相同的CCS变量,但可以使用 变量文件轻松共享这些变量。 所有编译器的包含路径都可以添加到一个环境变量下。

    -将环境变量添加到项目的编译器的include path选项,而不是多个路径的列表。

    -在生成过程中,为环境变量列出的每个路径都应传递到–include_path选项。

    另外,我认为可以使用“文件”->“导出”->“首选项”和“文件”->“导入”->“首选项”菜单在多个用户之间共享环境变量。

    我承认这不像向文件添加选项列表并将其传递给编译器那样直接,但是由于选项文件不支持使用变量,我可以想到这是一种替代方法。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢Artig的帮助,我想您使用的是CCSv6,我使用的是CCSv5,它有点不同,但我成功地实施了您对旧版本的建议。

    但是我还有一个问题,我有很多项目文件,需要自动编译它们,为此,我使用的是com.ti.ccstudio.apps.projectImport和com.ti.ccstudio.apps.projectBuild命令。

    问题是现在,我的所有项目都依赖于eclipse环境变量,如果我不做任何操作,则项目无法编译。

    我的问题是,在我的用例中,如何在我的工作空间中自动添加eclipse环境变量以使编译成功?

    提前非常感谢您的帮助。

    此致,

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

    I问题是,在我的使用案例中,如何在工作空间中自动添加eclipse环境变量以使编译成功? [/引述]

    我看到了几个选项:

    1)在项目级别而不是工作空间级别设置环境变量(在“项目属性”->“生成”->“环境”选项卡下)。 然后,当您使用命令行projectImport将项目导入到新工作空间时,该变量将随项目一起转移。 缺点是您必须在每个项目中设置环境变量,但至少只需设置一次。

    2)如果在工作空间级别设置变量,则可以在运行命令行projectImport和projectBuild之前将其导出并导入到新的工作空间中。 但是,我没有找到通过命令行执行导出/导入的方法。 可以通过CCS GUI使用菜单“文件”->“导出”->“首选项 ”来完成此操作,然后为首选项文件提供一个名称,然后使用菜单“文件”->“导入”->“首选项”将其导入新工作空间。 遗憾的是,如果您的流程最终为每个新导入/构建创建新的工作区,则这可能会变得乏味。

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

    关于您的第一个建议:

    如果使用1)选项,问题是我有一个非常长的include路径,必须将其写入x次。

    我找到了一个使用唯一宏. INI文件的解决方案,并将其复制到每个项目目录中。 当我打开项目时,include路径出现在项目的build变量中。

    问题是,在我的macros.ini文件中,我写了:

    Inc_path_list=路径1;path2;路径h3.

    但是,当CCS在项目的build变量中导入我的宏文件时,它将INC_PATH_LIST转换为目录而不是列表路径,因此我的编译失败。

    我的问题是如何在macros.ini文件中写入INC_PATH_LIST变量,使CCS将其转换为项目Build变量中的列表路径,而不是目录?

    提前感谢您的帮助。

    此致。

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

    但是 当CCS在项目的build变量中导入我的宏文件时,它会将INC_PATH_LIST转换为目录而不是列表路径,因此我的编译失败。

    我的问题是如何在macros.ini文件中写入INC_PATH_LIST变量,使CCS将其转换为项目Build变量中的列表路径,而不是目录?

    遗憾的是,macros.ini文件当前不支持列表类型变量。 我们正在跟踪一个增强请求,以便在未来的CCS版本中添加此支持,但该支持目前不可用。

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

    因此,如果我理解,CCS没有解决方案可以完全自动地管理,包括许多项目的通用路径变量?

    此致。

    患者
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确。 当我们在macros.ini变量中添加对列表类型变量的支持时,可以更轻松地完成此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的精确操作。

    最后,我通过更新在新工作区中导入项目后创建的org.eclipse.cdt.core.prefs文件(通过使用dos命令复制特定文件)来满足我的需要。 通过这种似乎有效的绕过方式,我可以继续自动管理我的进程,并对所有导入的项目使用工作区环境变量;

    此致。

    患者
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的这一精确度以及您对解决问题的帮助。

    最后,我通过在新工作区中导入项目后更新org.eclipse.cdt.core.prefs文件(使用copy dos命令替换)来满足我的需求,通过这种绕过,我可以通过对我的所有项目使用工作区环境变量来继续管理我的自动流程。

    患者