私は現在LinuxとuClibcでCを使用している組み込みプロジェクトに取り組んでいます。これをC++に移行することに関心がありますが、libstdc++でのリンクに関連するオーバーヘッドは必要ありません。私の印象では、これは、iostreamやvectorなどのSTLから何も使用しない場合に可能です。
libstdc++にリンクせずにg++をコンパイルするように指示するにはどうすればよいですか?
あなたが使うことができます
g++ -nodefaultlibs -fno-exceptions a.cc
ただし、この方法ですべてのC++機能を使用することはできません...
コンパイルするときは、g++ -c
コンパイルのみに使用します。次に、リンクには、ld
の代わりにを使用しg++
ます。ただし、これによりリンカーが直接呼び出されるため、コマンドラインですべてのライブラリ(libcおよびlibcrtを含む)に名前を付ける必要があります。
gcc
または、g ++を「より良いc」として使用している場合は、最後のリンクステップ(libcが自動的に含まれる)に使用できる場合があります。
完全性と正確性のために:
g++ -c -fno-exceptions a.cpp
gcc a.o -o a