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.

[参考译文] RTOS/PROCESSOR-SDK-AM437X:编译错误

Guru**** 2589265 points
Other Parts Discussed in Thread: PROCESSOR-SDK-AM437X

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/636453/rtos-processor-sdk-am437x-compilation-error

器件型号:PROCESSOR-SDK-AM437X

工具/软件:TI-RTOS

您好!
我´d 使用 C++对我的应用程序进行编码。 我´ve 了一个名为 Board_init()的 main.cpp 文件。

I´ve 将 Board_init ()原型置于"extern "C"{}"内、如下所示:

extern "C"{
Board_status Board_init (Board_initCfg cfg);


当我编译时、我遇到以下错误:
"'Board_status Board_init (Board_initCfg)'的声明与'C'链接冲突"    

有人可以帮助我吗?

已安装的组件:
CCS 7.2
GCC ARM 编译器4.9.3
PROCESSOR_SDK_RTOS_AM437X 4.00.04
AM437x PDK v1.0.7
BIOS 6.46.05.55
xdctools 3.32.02.25_core

电路板:AM437X 入门套件


此致、

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

    器件型号:PROCESSOR-SDK-AM437X

    工具/软件:TI-RTOS

    您好!
    我认为缺少"}"来关闭 AM437x PDK v1.0.7的 ti/drv/emac/src/v4/emac_drv_v4.h 中的"extern "C"。

    此致、

    Marcio

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、在 AM437x PDK v1.0.7或最新版本 v 1.0.8的 ti/drv/emac/src/v4/emac_drv_v4.h 中缺少"}"以关闭"extern "C"。 我将填写一个 TT。

    这是否与您报告的问题相关:'Board_status Board_init (Board_initCfg)'的声明与'C'链接冲突? 我看到了一些讨论: stackoverflow.com/.../compiling-program-containing-extern-c。 可能是这样。

    如果您修复了该头文件、它是否适合您?

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

    不幸的是、不是。

    在我修复了 EMAC_drv_v4.h 后、问题仍然存在

     如果我注释掉对 Board_init()的调用,问题就会消失。

    我可以通过从.c 文件上的换行函数中调用 Board_init(),然后在.cpp 文件上使用 extern "C"调用此函数来解决这个问题。

    此致、

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

    感谢您的告知。 从.c 文件上的换行函数调用 Board_init(),然后在.cpp 文件上调用此函数,使用 extern "C"是解决此问题的方法。 我为头文件打开了一个 TT。

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

    您是否有一个显示问题的简单 C++项目? 使用的编译器和编译器选项设置是什么? 如果是、您可以为我们上传一个、太棒了!

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

    尊敬的 Eric:

    我从示例中获取的编译器选项、如果我没有错、NIMU_BasicExample_skAM437x_armExampleproject。

    项目已附加。 将所有'#if 1'更改为'#if 0'编译时无错误。

    此致、

    Marcio

    e2e.ti.com/.../ced2_5F00_skAM437x_5F00_0.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    我只是想告诉大家,我在调用“emac_poll ()”时遇到了同样的问题。 我已经解决了在 emac_drv.h 中添加'extern "C"的问题
    #ifdef __cplusplus
    extern "C"{
    #endif
    修订版、
    Marcio。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您的介绍、我将在下一个版本中更新这些内容。

    此致、Eric