こんにちは、NoMaYです。昨日、別スレッドをきっかけに、最近のe2 studioでは(実は結構昔から?)プロジェクトウィザードでGNURXやCC-RXのC++プロジェクトを作成する場合にもRXスマートコンフィグレータを選択可能になっていることを知りました。同時に、C++ソースに対してはCソースよりもe2 studioのINDEXER/CODANの調子が悪そうなことも知りました。そこで、ちょっと調べてみようと思いました。出来れば改善策の落としどころも模索してみたいです。(でも、本来は、ルネサスさんに直して貰うべきものかな、とは思いますが。)まずは、バグ一覧やFAQに何か記載されているか調べてみましたが、特にはありませんでした。e² studio 2021-04 バグ一覧 (includeの文字列を検索)www2.renesas.eu/_custom/software/ree_eclipse/e2studio8/docs/releasenotes/2021_04/openissues.htmGoogle検索: "e2 studio" "C++" include site:ja-support.renesas.com/knowledgeBasewww.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aja-support.renesas.com%2FknowledgeBasewww.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aen-support.renesas.com%2FknowledgeBase[関連スレッド]e2 studioでビルドエラーが無いのに編集エラーが表示された時に試すと良いかも(workarounds for INDEXER/CODAN troubles)japan.renesasrulz.com/cafe_rene/f/forum21/4564/e2-studio-workarounds-for-indexer-codan-troubles続く。以下、e2 studioでC++ソースでINDEXER/CODANが誤動作している例の画面コピーです。現状はC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されていない本来は以下のようにC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されているべき
こんにちは、NoMaYです。先日、別スレッドをきっかけに、最近のe2 studioでは(実は結構昔から?)プロジェクトウィザードでGNURXやCC-RXのC++プロジェクトを作成する場合にもRXスマートコンフィグレータを選択可能になっていることを知りました。同時に、C++ソースに対してはCソースよりもe2 studioのINDEXER/CODANの調子が悪そうなことも知りました。そこで、ちょっと調べ始めてみました。脱線しますけど、実は、C++標準ヘッダファイルのインクルードパスのことを何とかしてもまだ挙動がおかしいので、string等のヘッダファイルを追っていて気になったのですが、C++標準ヘッダファイル(というかC++標準ライブラリ)はGPLなのかな?(例外条項が付与されているのであまり厳しくないでしょうけど。) 無知を晒すことになりそうですが、てっきりnewlibにC++版があるのだと思ってました、、、GNURX 8.3.0.202102のC++標準ヘッダファイルstringの初めの部分(これはnewlibでは無いですよね、、、)
// Components for manipulating sequences of characters -*- C++ -*-// Copyright (C) 1997-2018 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you can redistribute it and/or modify it under the// terms of the GNU General Public License as published by the// Free Software Foundation; either version 3, or (at your option)// any later version.// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// Under Section 7 of GPL version 3, you are granted additional// permissions described in the GCC Runtime Library Exception, version// 3.1, as published by the Free Software Foundation.// You should have received a copy of the GNU General Public License and// a copy of the GCC Runtime Library Exception along with this program;// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see// <www.gnu.org/.../>./** @file include/string * This is a Standard C++ Library header. */
他方、GNURX 8.3.0.202102のC標準ヘッダファイルstring.hの初めの部分(これはnewlibですよね、、、)
/* * string.h * * Definitions for memory and string functions. */#ifndef _STRING_H_#define _STRING_H_#include "_ansi.h"#include <sys/reent.h>#include <sys/cdefs.h>#include <sys/features.h>#define __need_size_t#define __need_NULL#include <stddef.h>#if __POSIX_VISIBLE >= 200809#include <xlocale.h>#endif#if __BSD_VISIBLE#include <strings.h>#endif