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.

[参考译文] TMS320F280039C:在链接器命令文件中传递路径

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1365998/tms320f280039c-passing-paths-in-linker-command-file

器件型号:TMS320F280039C

工具与软件:

您好、TI:  

我有一个具有链接器命令文件的工程。
我希望在该文件中包含来自项目外部但位于相同工作区的文件。

我尝试了以下语法:

${CCS_workspace_DIR}\${DifferentProject}\my_file

DifferentProject 是一个由我在中定义的变量:
"Project Properties"->"Build"->"Variables"

在构建项目时、出现了无法找到文件"$"的错误。
我已经尝试消除$并只做了 CCS_workspace_DIR\DifferentProject\my_file、但是我遇到同样的错误。

我还尝试了"Project Properties"->"C2000 Linker"->"File Search Path"->"Add"

库搜索路径->我在此处添加了文件的路径。
我在链接器命令文件中调用了 my_file、它仍然无法识别它。

调用链接器命令文件中的文件的正确语法是什么?

权变措施是调用文件 C:/Workspace/.../my_file 的整个路径

但如果导入后、我将需要该项目在不同的工作区和计算机上工作、因此我想能够使用 CCS_workspace_DIR 等环境变量。

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

    您好!  

    请参阅以下文档:  

    您是否可以尝试使用${PROJECT_ROOT}/../your_file ?  

    此致、

    Ben Collier

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

    尊敬的 Ben:

    不幸的是,这对我来说不起作用

    请参阅以下文档:




    所有注释行都已尝试作为替代方案。

    整个路径为 C:\0_0_new_workspaces\Workspace_02\F580a_boot\Debug\boot.o (codestart)。

    如果这适合您、请向我展示您在链接器(cmd)文件中编写它的方法。

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

    您好!

    您不能简单地将 codestart 文件包含在您可使用${PROJECT_ROOT}的每一个项目的帽子中吗?  

    这通常是我们在示例中所做的事情。

    此致、

    Ben Collier

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

    尊敬的 Ben:

    codestart 不是一个文件、而是一个来自一个不同项目的可执行文件的内存段。

    我已将可执行文件添加到我的项目中、但${PROJECT_ROOT}/boot.o (codestart)给出了相同的错误。

    似乎链接器(cmd)文件无法识别工程的环境变量。

    如果${PROJECT_ROOT}在您的终端和示例中有效、您能给我一个使用此方法的示例吗?

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

    请允许我花些时间就此问题与您联系。

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

    您将无法在链接器命令文件中使用 CCS/Eclipse 变量。

    我将该主题提请编译器专家注意、以便进一步发表意见。

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

    无法从 C 源代码、链接器命令文件等中引用 CCS 构建变量   

    [报价 userid="573025" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1365998/tms320f280039c-passing-paths-in-linker-command-file ]]我还尝试了"Project Properties"-> C2000 Linker -> File Search Path -> Add 库搜索路径->我在此处添加了文件的路径。
    我在链接器命令文件中调用了 my_file、但它仍然无法识别它。[/QUOT]

    很接近了。  请将目录添加到库搜索路径。  这样做时、您可以引用 CCS 编译变量。  假定这些目录中有一个包含一个名为的目标文件 my_file.obj .  链接器命令文件中的此条目是如何引用它...

    "--library=my_file.obj"

    选项 --图书馆 表示该文件不在当前目录中、并在以命名的目录中查找该文件 -- search_path 选项。  有关详细信息、 请搜索 C28x 汇编工具手册 中标题为 更改库搜索算法的子章节

    谢谢。此致、

    -George.

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

    我们访问在 LCF 中定义的 CCS、如下所示:

    然后、在某些 LCF 中:

    #if defined (LCF_DEBUG)
     #define _myLib_filename_ myLib_debug.lib
    #elif defined (lcf_release)
     #define _myLib_filename_ mylib.lib

    #else

    //在链接器定义的符号中缺少--define
    //在 CSS 中、此部分位于"project properties"->"C2000 Linker"->"Advanced Options"->"Command File Preprocesing"

    #error"请为链接器命令文件定义调试或发布"
    #endif