私は純粋なC-st usbライブラリのプロジェクトを持っています。これをC++に移行し、同じ構造をクラスに変更する必要があります。 (HALライブラリを除く)私は.cpp
へ.c
からすべてのファイルの拡張子を変更しCをC++に移植する(埋め込み)
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
:私のようなすべてのC++ "保護" を削除しました。 私はC++ .hex
が7kBより小さく、次に.hex
であることに気付きました。 .map
ファイルを調べると、多くの機能が不足していることがわかりました。私はstatic
関数がそれを引き起こしたと思ったが、static
キーワードを削除することは役に立たなかった。誰かが何らかの機能がコンパイルされていない原因になるか考えている人はいますか?拡張機能が.c
の場合はすべて問題ありません。
単なるレコード用:コンパイラとリンカの場合、ファイル拡張子は無関係です。 –
興味深いことがいくつかあります:合計サイズに比べて7kB小さいですか?関数定義を失っただけでしたか、ソフトウェアで失われた機能ですか? –
Cで30kB、C++で23kB。私は機能を失った。 cでコンパイルされると、PCは自分のデバイスを認識しますが、C++でコンパイルされてもそれは認識しません。 – legier