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:如何在项目相关性中指定库?

Guru**** 2587365 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/603983/ccs-how-to-specify-libraries-in-project-dependencies

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

工具/软件:Code Composer Studio

我正在使用CCS工作区来构建多个项目。 我有 两个构建库的项目:Liba, libB。 另一个项目生成一个程序:fdtab. 我希望项目 fdtab链接到由项目Liba生成的库中。 在项目fdtab中,我只想指定依赖项目(Liba)和要使用的配置(debug)。 我希望通过Liba项目指定库路径名。

我尝试使用项目Liba中的"导出"页面指定要导出的资源。 在项目fdtab中,我使用“路径和符号”页的“引用”选项卡来指定项目Liba和要使用的配置。 这种方法可以工作,但项目Liba中的库被添加到我的链接器路径中两次。

现在我想从使用Liba切换到使用libB。 在项目fdtab中,我取消选择我的Liba依赖关系,然后选择“按libB依赖关系”。 这会将库从libB添加到我的链接路径(再次添加两次),但不会从Liba项目中删除该库。

请告知是否有更好的方法来执行此操作。

谢谢!
~Ramsey

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

    Ramsey,

    在项目fdtab中,我只想指定依赖项目(Liba)和要使用的配置(调试)。 我希望库路径名由Liba项目指定。[/QUOT]

    据我所知,没有办法"自动"将依赖项目的路径或输出传递到主项目中。  指定依赖关系只是告诉生成系统需要在主项目之前生成依赖项目(在您的情况下为库项目)。 但是,您仍需要手动添加要链接到主应用程序的库的路径和名称,这通常是在“链接器”->“文件搜索路径”选项下完成的。

    现在我想从使用Liba切换到使用libB。 在项目fdtab中,我取消选择我的Liba依赖关系,然后选择“按libB依赖关系”。 这会将库从libB添加到我的链接路径(再次添加两次),但不会从Liba项目中删除该库。[/QUOT]

    如何使用 fdtab的两个构建配置:一个依赖于Liba库中的链接,另一个依赖于libB和libB库中的链接?

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

    AartAG,

    感谢您的回复。

    Export (导出)页面旨在支持自动资源导出。 换句话说,当项目fdtab声明对项目Liba的依赖关系时,在Liba/Export页中指定的所有资源都将自动导出到项目fdtab中。 除了从Liba导出的库资源被两次添加到fdtab链接行之外,这种方法非常有效。 这就像一个虫子。

    从项目fdtab中删除Liba的项目依赖关系时,我希望CCS检查Liba中导出的资源,并从fdtab中删除它们。 这将彻底消除任何遗留的依赖关系。 这种情况未发生表明存在另一个错误。

    我希望有人能对这种行为有所了解。

    我认为使用多个构建配置不会奏效。 在项目fdtab中,项目引用页不支持每个配置的设置。 换言之,项目引用不会随不同的构建配置而更改。

    谢谢!
    ~Ramsey

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

    Export (导出)页面旨在支持自动资源导出。 换句话说,当项目fdtab声明对项目Liba的依赖关系时,在Liba/Export页中指定的所有资源都将自动导出到项目fdtab中。 除了从Liba导出的库资源两次添加到fdtab链接行之外,这种方法非常有效。

    很抱歉,您能否详细说明一下您在CCS中是如何做到这一点的? 我看不到通过"路径和符号"属性页从库项目导出库文件(.lib)的方法。 您是从哪里进行的? 如果可以,请提供有关如何设置的详细信息和步骤,这将非常有帮助(屏幕截图也非常有用)。

    另外,在重建主项目(显示在命令行中添加了两次Liba)时,能否将完整输出复制/粘贴到CCS生成控制台中并将其附加到此处?

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

    AartAG,

    默认情况下,CCS不显示“导出设置”页面。 您必须在“首选项”对话框中启用此功能。

    窗口>首选项> C/C++>属性页设置
    显示"导出设置"页面>选择

    现在,您可以打开Liba项目的“导出设置”页面。 请注意,必须在属性对话框中启用高级设置。

    选择Liba项目
    项目>属性
    显示高级设置>单击(如果需要)
    C/C++ General (C/C++常规)> Export Settings (导出设置)

    您现在可以指定要导出的项目资源。 这些取决于构建配置。 我正在使用调试构建配置。 我正在导出包含路径和库。

    配置>调试
    包括(选项卡)>添加...

    单击工作区按钮并选择当前项目。 这看起来很奇怪,但我看不出来有其他办法可以做。 然后重复相同的过程以指定我的库。 单击“库”选项卡,然后单击“添加”按钮。 我的"Liba"项目实际上称为ti_posix_MSP432P401R_CCS。 以下是屏幕截图。

    现在,我转到fdtab项目,声明对ti_POSIX项目的依赖关系。 您必须保存更改,因为没有应用按钮。 然后再次打开项目属性并检查编译器的include路径。 您将看到已为您添加ti_posix include路径。

    现在检查这些库,您将看到ti_POSIX库已添加两次。

    构建时,库在输出中显示两次。

    删除项目相关性时,将从编译器选项中删除include路径。 但不会删除库引用。

    谢谢!
    ~Ramsey

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

    Ramsey,

    感谢您发送详细步骤。 因此,我能够重现您所描述的问题:  
    1)库资源被两次添加到链接器--library选项和
    2)切换项目相关性不会删除以前添加的库

    我已经提交了一份错误报告,以便分析和修复这些问题。 跟踪编号为CCSEIDE-3163。 您可以使用我签名中的SDOWP链接跟踪它们(在给它一些时间进行同步后)。

    对于第二个问题,我认为您可以使用主项目的多个生成配置来解决它。 例如,一个使用Liba作为依赖关系的构建配置和另一个使用libB作为依赖关系的配置。 这样,您就不必面对手动从--library选项中删除以前添加的库的问题。 相反,每个构建配置都有其自己的固定依赖关系/资源,您不必在两者之间不断切换。

    感谢您提请我们注意这些问题并耐心等待。

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

    Ramsey,

    CCS工程师已经研究了这个问题,他的反馈是TI不提供这些特定Eclipse CDT组件,因此遗憾的是,TI目前没有计划解决这个问题。 这也是我们默认隐藏这些页面/设置的原因。

    不过,我们欢迎您将其归档为Eclipse错误,希望他们能在Eclipse的未来版本中解决此问题。 对此造成的不便,我们深表歉意。

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

    AartAG,

    哦,好的。 感谢您的尝试。

    ~Ramsey