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:CCS7自动链接所有.OBJ &.o文件,即使它没有创建它们

Guru**** 2539500 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/575993/ccs-ccs7-automatically-links-all-obj-o-files-even-if-it-did-not-create-them

工具/软件:Code Composer Studio

大家好,

我对CCS7有一个小问题(在CCS6中也存在):它链接了它可以找到的构建目录中的所有*。obj和*。o文件,甚至是它没有创建的文件。 令人烦恼的缺点是,如果.o或.obj文件是由其他工具创建的,CCS将产生非常奇怪和大量的错误。

是否可以更改? 我认为这不是预期行为,因为当先前版本的源目录中有一个杂散的.o文件时,它会导致在版本中不必要地包含符号和数据。

谢谢,

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

    Dan Cermak 说:
    我不认为这是预期行为,[/QUOT]

    Dan,

    事实上,这是预期的行为。 项目目录中的所有文件都被视为构建的一部分:如果它们是源文件,则将被传递到编译器;如果它们是目标文件,则将被传递到链接器。

    有几种方法可以解决此问题:  
    1)您可以明确 排除 不希望包含在链接中的目标文件
    2)您可以添加其他清理命令来删除特定/所有目标文件,以便它们在"清理项目"期间运行。 有关 示例,请参阅此Wiki部分。  

    希望这有所帮助。

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

    嗯,这是一个奇怪的默认选择。 我想没有办法改变这种行为? 如果我正确理解CCS,它将使用make under the Hood来生成项目,因此必须为链接程序显式指定目标文件。 这是以一种易于修改的方式编写的,还是必须修改食脂来源?

    无论如何,我知道如何解决这个问题。 在打开CCS之前,我在我的生成目录中运行scons -c,这通常是有效的,除非我重命名了文件,并且没有删除任何遗留的目标文件(scons不会关心这些文件,因此也不会清理它们)。

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

    如果我正确理解CCS,它将在后台使用make来生成项目,因此必须为链接器显式指定目标文件。 此脚本是以易于修改的方式编写的,还是必须修改食脂来源?[/QUOT]

    如果使用自定义makefile,可以根据需要对其进行自定义,但如果使用托管构建系统(即让CCS自动生成makefile),则我认为没有一种简单的方法来修改此行为。