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/TMS320C6678:如何在没有链接器的情况下移动*.lib文件位置?

Guru**** 2560390 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/590686/ccs-tms320c6678-how-can-i-move-lib-file-position-without-linker

部件号:TMS320C6678

工具/软件:Code Composer Studio

您好~我有一个问题。

在生成项目时 ,我使用了一些.lib文件。

*.lib文件基本上位于高速缓存中。

我的团队已使用链接器将*。lib文件位置移至DDR。

图表下是链接器示例。

章节

测试:

"../../source/A.lib"(.const)

"../../ Source/A.lib"(.FAR)

}> DDR

}

但是我建立了一个新的构建系统。

在新的构建系统中,*。lib的相对路径与原始路径不同。

您可以在下表中检查新位置。

章节

测试:

"../source/A.lib"(.const)

"../source/A.lib"(.FAR)

}> DDR

}

两个系统的*.lib文件相对路径不同,但必须使用相同的链接器。

如何将链接器更改为使用两个构建系统?

'#pragma data_section'只是移动变量或结构。 是否有任何方法可以将*。lib文件在代码级别中的位置移动到其他位置?

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

    解决方案需要进行两项更改。  

    一个... 在链接程序命令文件中,采用  C6000汇编工具手册中标题为“将库或归档成员指定为输出的输入”部分中所见的语法。  

    测试:
    {
    --library=a.lib (.const)
    --library=A.lib (.far)
    }> ddr 

    两个... 在命令行中,使用选项--include_path=full path此处告诉链接程序在哪里可以找到A.lib.  由于它位于命令行上,因此可以根据需要轻松更改。

    谢谢,此致,

    -George

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

    感谢您的帮助!
    我使用了第一种方法。 但是找不到库位置
    正如您所说,我看到了'C6000装配工具手册'。
    我找到了新的链接器选项'--search_path'。
    如果我使用此选项并且您向我进行了辅导,我可以解决此问题!

    在我看来,完成的代码如下所示。
    测试:

    --search_path=././Source
    --search_path=./Source
    --library=a.lib (.const)
    --library=a.lib (.far)
    }

    在此之前,我制作了测试代码。
    测试:

    --search_path=././Source
    --library=a.lib (.const)
    --library=a.lib (.far)
    }
    但它有一个编译错误。 链接器的--search_path选项中出现该错误。错误消息为3行。
    第71行:错误:-l必须指定文件名
    第71行:致命错误:无法打开文件
    "../../来源":权限被拒绝

    如何解决这个问题?
    当我使用下面的代码时,它工作的很好!
    测试:

    --library=../../source/A.lib (.const)
    --library=./../source/A.lib (.far)
    }

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

    我在 你开始的另一个主题中回答了这个问题。

    谢谢,此致,

    -George