1

NEWLIB から数学関数を使用する組み込みシステム用に設計されたコードを抽出しています。そのコードを Visual C++ Express Edition でコンパイルしたいと考えています。ただし、NEWLIB 内のコードの一部は GCC のみでコンパイルされるように設計されているようです。

質問: GCC 以外のコンパイラでコンパイルできるように NEWLIB を修正することはできますか? どのように?

ここで私は理不尽なことを聞​​いていますか?

たとえば、次の記号は Visual Compiler では認識されません。

__extension__
__ULong
_mbtowc_state
__attribute__

注: LCC でコンパイルできれば満足です。これは簡単でしょうか?

4

1 に答える 1

1

MSVC で newlib をビルドするには、移植に多大な労力が必要です。MSVC が提供する libc にコードを移植することをお勧めします。それらはほとんど互換性があるはずです。ビルド システムから newlib を削除するだけで、MSVC はコードを独自の libc に対して自動的にリンクします。

MSVC でコードをビルドできる場合は、MSVC の libc に既に移植している可能性があります。newlib からヘッダーを明示的にインクルードしていない限り。たとえば、を含めるstdio.hと、この動作をオーバーライドして newlib のバージョンを使用するようにしない限り、デフォルトで MSVC のバージョンが取得されます。

于 2015-06-12T22:27:58.743 に答える