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.

[参考译文] 编译器:#include搜索路径排序,带多个--include_path选项

Guru**** 2608465 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/631011/compiler-include-search-path-ordering-with-multiple---include_path-options

工具/软件:TI C/C++编译器

在命令行上传递多个--include_path (或-l)选项时,TI ARM编译器(或汇编器和链接器)的#include搜索路径顺序是什么? (链接程序的--search_path。)

例如,执行以下调用:

TI-CGT-ARM_ARM_LTS.4.LTS/bin/armcl 16.9 --include_path="pathA"--include_path="pathB" file.c

其中file.c包括:

#include file.def>

有些实验表明,首先通过的选项优先于稍后通过的选项。  即,在之前的调用中,将首先搜索pathA以查找file.def,并且只有在不存在此类文件时,才会搜索pathB。  (换句话说,如果路径A和路径B中都存在名为file.def的文件,则将使用路径A中的文件。)

情况是否可靠?

这种行为是否保证适用于TI ARM工具的未来版本?

spnu151q的2.5 (详细信息) 2和2.5 .2.1 (详细信息)部分未指定此详细信息。  (spnu118t的章节4.5 .1,8.4 .11或8.4 .18也不是。)

--谢谢

(请注意,我知道当使用""版本时,例如#include "file.def",搜索路径中的第一优先级将授予与具有#include指令的文件位于同一目录中的文件。)

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

    为了供阅读此线程的其他人参考, 您提到的第一节ARM编译器手册标题为 #include文件的搜索路径。  这是所使用的搜索路径顺序的最精确的陈述。  正确的说法是,它没有指定使用选项--include_path指定的目录的顺序。   

    1138 说:
    一些实验表明,首先通过的选项优先于稍后通过的选项。[/QUOT]

    这是正确的。  它一直以这种方式工作,并将继续以这种方式工作。

    谢谢,此致,

    -George

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

    很棒,很好,谢谢。

    TI ARM汇编器的--include_path选项和链接器的--search_path选项的此顺序是否也正确并得到保证?

    --谢谢

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

    1138 说:
    对于TI ARM汇编器的--include_path选项和链接器的--search_path选项,此顺序是否也正确和有保证?

    是的。  -George