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.

[参考译文] 静态库可以#39;t 查找库.h 文件位置???

Guru**** 2558250 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1116570/static-library-can-t-find-library-h-file-location

主题中讨论的其他器件:MSP430FR2355

您好...

我已经为通用 MSP430驱动程序文件创建了一个新的工作区...每个外设都有自己的项目...我目前正在一个简单的沙盒位置测试时钟。  在 编译之前、我添加了预定义变量_MSP430FR2355__、以便能够使用特定 MSP 来针对每个编译。  然后、我创建了一个使用寄存器定义等创建的文件、该文件名为 msp430fr_drvr.h、其中包含#include ...我在链接的资源下创建一个变量"register_DEF"、它指向 msp430fr_drvr.h 的位置  然后、我将其包含在包含选项中(请参阅下图)

我已将其链接到该位置、但我仍然收到错误无法找到文件...正如您从源代码中看到的、MSP430FR_DRVR_H_变量已找到、看起来不错。

有什么想法吗?

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

    我看到一个名为"msp430fr_drvr.h"的文件、但 include 会显示"msp430fr_drv.h"。 这是否是拼写错误?

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

    谢谢 Bruce。。。。我也看到了这一点。。。它解决了问题。。。。所以图书馆现在已经建立了,但我有一个问题是,当我打开文件 msp430fr_drvr.h 时,它都是灰色的,好像它没有看到它一样。。。。有什么关于为什么这是什么想法?

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

    这是一个很大的问题、因为我需要 或我的项目无法构建

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

    您说它构建良好,所以这种磨损显然是一种虚假的迹象。 Eclipse Indexer 有时在"常用"之外定义的符号时似乎会遇到问题。 我经常在编译步骤中使用-D 定义符号来看到它。

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

    抱歉……如果我加油并添加#include、这只能算正常 在 sandbox.h 中

    请参阅以下内容...

    #include <msp430.h>
    #if defined (__MSP430FR_DRVR_H_)
    #include "msp430fr_drvr.h"
    #endif

    但我真的想从那里删除它,并将它存在于我正在创建的通用驱动程序 h 文件中。。。(请参阅文件顶部的最后一篇文章)。。。。这些都是一年来经过验证的构建,但我正在尝试在这一端制作库和更多的结构 以供重复使用

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

    >#if defined (__MSP430FR_DRVR_H_)

    这与您之前的屏幕截图不同。 在前面的代码中,您正在测试幂符号(MSP430FR_DRVR_H_),它向后看--该测试有效地说:"如果我没有包含该标头,则不要包含该标头,但如果我已经包含了该标头,请再次包含该标头"。

    我建议您完全删除此测试、并让 msp430fr_drvr.h 顶部的测试执行它的操作。

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

    因此、我删除了:

    //#ifndef __MSP430FR_DRVR_H_
    //#define __MSP430FR_DRVR_H_
    
    
    
    
    
    //#endif /* __MSP430FR_DRVR_H_ */

    根据您在 msp430fr_drvr.h 上的指示,它是有效的...非常感谢您!...愚蠢的问题:

    我尝试了以下方法、认为它可以正常工作、但它不能正常工作、为什么?  在 sandbox.h 中重新标记#if 已定义、并在 msp430fr.drvr.h 中保留#ifndef

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

    我建议删除我引用的测试、而不是.h 文件中的测试(您说的不起作用)。

    基于这两个观察结果,我怀疑您在其他地方定义了__MSP430FR_DRVR_H_--也许在构建设置中?