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.
工具/软件:TI C/C++编译器
我遇到了编译器 v3.3.3和 CCSv4.2.3的问题、如果我将"优化级别"更改为现有3以外的任何内容、则会出现链接器错误、如所示:
未定义的首次引用
符号
------ --------
I_LSR ./Msg.obj
错误:未解析的符号仍然存在
错误:链接期间遇到错误;未生成"ELD.OUT"
如果我打开这个旧的旧旧工程并将其保留原样(优化级别= 3)、则编译良好。 我确实希望暂时关闭优化以进行一些调试。
感谢您的任何建议、
ED
我不知道发生了什么。 但我有一个很好的猜测。 如果猜对了、解决方案是重新安装编译器。
此错误...
[引用 user="snuk">未定义的首次引用
符号
------ --------
I_LSR ./Msg.obj[/quot]
(笑声) 意味着模块 Msg.obj (可能是从 Msg.c 构建的)会调用一个名为 I_LSR 的函数、但该函数不存在于编译中使用的任何其他目标模块或库中。
函数 I_LSR 执行逻辑右移。 这是 C 表达式 unsigned_value >> count 的计算。 使用--opt_level=3进行编译时,该表达式会以某种方式进行优化,或以内联方式执行。 在较低的优化级别、调用 RTS 例程 I_LSR 来计算表达式。
编译器 RTS 库在名为 lsr16.obj (由 lsr16.asm 构建)的模块中提供函数 I_LSR。 我不知道为什么您的 RTS 库没有它。 我认为担心这种情况的发生是没有道理的。 重新安装编译器将修复它。
[引用 user="snuk"]我遇到了编译器 v3.3.3和 CCSv4.2.3的问题
这些工具已使用了大约8年。 我不确定是否可以再更新它们。 但我认为值得一试。 您的编译器安装在类似于...的位置。
C:\ti\ccsv4\tools\compiler\msp430_3.3.3
将此目录重命名为其他目录。 然后按照文章 Compiler Releases 第一部分中的说明安装编译器版本3.3.3。 忽略有关免费下载的部件。 版本3.3.3不以这种方式提供。
谢谢、此致、
乔治
感谢 George 提供的信息、
当我最初安装 CCSv4时、我有编译器 v3.3.2、这给了我这个问题。 在发布此问题之前、我已将编译器更新为 v3.3.3、但仍有相同的错误。 因此、不确定升级到 v3.3.3是否是这方面的解决方案。
编辑1:刚刚查看了 ti 文件夹、除了 C:\ti\ccsv4\license、我没有看到任何其他内容。 没有工具文件夹。 不确定编译器的驻留位置!
编辑2:在一个位发生后、它实际上位于 C:\Program Files (x86)\Texas Instruments\ccsv4\tools\compiler\MSP430 Code Generation Tools 3.3.3... 无论如何、这是一个新更新的编译器、它是在几天前发布的、我仍然遇到链接器错误。
编辑3:我通过在"MSP430 Linker/File Search Path"中设置库的相应搜索路径来解决该错误、该路径在我们的旧旧旧工程中被损坏。
此致、
ED