C++でビルドエラー「E0520018:Expected a ")"」「E0520020:Identifier "__func__" is undefined」(RX231/CS+(CC-RX)/北斗電子製評価ボード)

いつもお世話になっております。

C/C++ソース混在プロジェクトなので、ビルドすると下記のエラーが発生します。

ご教授いただけると幸いです。

 

<ビルドエラー>

(1)E0520018:Expected a ")"

(2)E0520020:Identifier "__func__" is undefined


(1)の現象   ※便宜上、諸々削除し原因特定コードにしております。

/*-------------- VL53l0X.h -------------*/

=VL53l0X.h=
class VL53L0X
{
 public:
 VL53L0X(void);

 private:
 unsigned char address;
};

 

/*-------------- VL53l0X.cpp -------------*/

#include "VL53L0X.h"
#define U_VL53L0X_ADDRESS_DEFAULT  0b0101001

    

VL53L0X::VL53L0X(void)
: address(U_VL53L0X_ADDRESS_DEFAULT)    ★ここでエラー
{
}

 

【ビルドエラー】

E0520018:Expected a ")"

 

【コメント】

★を

#define U_VL53L0X_ADDRESS_DEFAULT (0b0101001)    ⇒同じエラー

#define U_VL53L0X_ADDRESS_DEFAULT 0101001      ⇒エラーがなくなります。

 

 

(2)の現象

/*-------------- C側のソース -------------*/

#define LOG(loglvl, tag, fmt, ...)   u_log(loglvl, tag, __FILE__, __LINE__, __func__, fmt, __VA_ARGS__) 

/*-------------- VL53l0X.cpp -------------*/

VL53L0X::test(void)
{

                :

  LOG(U_LOG_SILENT, U_LOG_TAG_VL53L0X, "OK \n", NULL);      ★ここでエラー

                :

 }

 

【ビルドエラー】

E0520020:Identifier "__func__" is undefined

 

 

【コメント】

『extern "C"』してもだめで、C++では__func__、__VA_ARGS__は使えないのでしょうか?

 

【その他】

・RX231/CS+(CC-RX)/北斗電子製評価ボード

・ビルドツールの設定は、C言語:C99(-lang=c99)、Cpp:C++(-lang=cpp)

   ライブラリジェネレートのC++の設定で何か有効にしなくてはならないのでしょうか?

 

以上、よろしくお願いいたします。

 

 

 

 

 

 

 

Parents
  • bunbunさん、こんにちは。NoMaYです。

    > 『E0520020:Identifier "class" is undefined 』とでるようになり、

    C++のclassの定義を含むヘッダファイル(.h)をCのソース(.c)でインクルードしてしまって、エラーになっている予感がします。こまめに、#ifdef __cplusplus や #ifndef __cplusplus でコンパイルされる/されないを、切り分けていかないといけないのではないでしょうか、、、

  • 御世話になっております。

    なるほどです。。。ちょっと見直してみます。
    いつもありがとうございます。

    取り急ぎ失礼致します。
Reply Children
No Data