問題タブ [libstdc++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
10929 参照

c++ - Xcode 4.5では、「C++標準ライブラリ」および「C++言語方言」の「コンパイラのデフォルト」とは何ですか?

Xcode4.5の「C++標準ライブラリ」および「C++言語方言」の「コンパイラデフォルト」の値は何ですか?

私の推測ではlibstdc++とGNU++98ですが、説明があればいいのですが。

Xcode 4.5リリースノートから:

このXcodeリリースを使用して作成されたプロジェクトは、標準C++ライブラリの新しいlibc++実装を使用します。libc ++ライブラリは、iOS5.0以降およびOSX10.7以降でのみ使用できます。12221787

プロジェクト内の以前のリリースのiOSおよびOSXでの展開を有効にするには、C++標準ライブラリのビルド設定をlibstdc++(Gnu C ++標準ライブラリ)に設定します。

新しいプロジェクトを作成すると、GNU ++11とlibc++が明示的に設定されますが、「コンパイラのデフォルト」はおそらく別のものです。

0 投票する
0 に答える
415 参照

c++ - Xcode で MacPort の libstdc++ をコンパイルしてリンクする方法は?

MacPorts を介して gcc ディストリビューションをアップグレードしたばかりで、最後の libstdc++4.7 (関心のある多くの C++11 機能をサポートする) を Xcode の clang++ で使用したいと考えています。明らかに、MacPorts のコマンドを使用して新しい gcc4.7 をアクティブ化するselectだけでは十分ではありません。

追加ヘッダーのディレクトリ (MacPorts デフォルト ルート/opt/local/include) と追加ライブラリ ディレクトリ (MacPorts デフォルト ルート/opt/local/lib) を既に設定しましたが、Xcode が C++ ヘッダーが にあることを認識するのに苦労しているようです/opt/local/include/gcc47/c++

0 投票する
1 に答える
192 参照

c++ - 古いマシンで新しい libstdc++ を使用しようとするとエラーが発生する

マシン A で CMake を使用してコンパイルしたプログラムがありますが、それを古いマシン B で実行したいと考えています。そうすると、次のようになります。

この質問を見たことがありますが、私の問題を解決する最善の方法は、新しいバージョンをマシン B にコピーすることだと思います/usr/lib/libstdc++.so.6libstdc++.so.6.0.14~/lib

その後。プログラムを開始すると、次のようになります

機能させるにはどうすればよいですか?

0 投票する
0 に答える
92 参照

c++ - ターゲットにインストールする必要がないように、標準ライブラリ libstdc++ を含めることはできますか?

重複の可能性:
libstdc++ を静的にリンクする方法

ターゲット プラットフォームで同じバージョンの標準ライブラリを確実に使用したいと考えています。それで、私のプログラムでそれをコンパイルする方法はありますか?

0 投票する
2 に答える
577 参照

c++ - c ++ 11/最近のg++バージョン(4.7 / 4.6)を使用した場合の移植性

私は最近、g++4.6とg++4.7の両方を使用してプログラムを開発しています。私は現在、多くのc++11機能を利用しています。

私は、サブディレクトリにプログラムと一緒にライブラリをバンドルしてLD_LIBRARY_PATHを使用できると考えてこの決定を下しました。それ以来、これが私のプログラムのセグメンテーション違反を引き起こしていることを発見しました。私はおそらくこれを少し早くテストするべきだったでしょう。それを引き起こしているのはバンドルされたlibc.so.6のようです(おそらく他のものですが、間違いなくlibcです)。

これまで、libsをインストールできず、正常に機能するこの手法を使用しましたが、プログラムにlibcとlibstdc++を含める必要はありませんでした。

この問題を回避する方法はありますか、それとも古いc ++ / libc / libstdc ++バージョンにロールバックする必要がありますか?(そしてそれに伴うコード変更の悪夢)

0 投票する
2 に答える
638 参照

c++ - c++11 STL の binomial_distribution が非常に遅い

STLの「ランダム」を使用して、二項分布の乱数を生成しています。範囲が大きいと極端に遅くなります。範囲が 40 の場合、100 個の数値を生成するのに 12 秒かかります。より大きな範囲では、時間が劇的に増加します (約 10000 の範囲が必要です)。確率パラメータには依存していないようです。g++ 4.5.0 を使用しています。

出力:

正規近似を使用できますが、確率パラメーターの極端な値には適していません。

アップデート:

「-O3」オプションを使用すると、時間は最大 2 秒になります。g++ 4.6.3 では、この問題は完全に解消されました。範囲に対する時間の依存性はほとんどなく、100 個の数値の生成には 5 ミリ秒かかります。

0 投票する
1 に答える
814 参照

c++ - CMakeで移植可能な方法でlibstdcxx暗黙のリンクディレクトリを取得する方法

背景は、プロジェクトが異なる GCC バージョン ( ABI は互換性がない可能性があります) で動作する必要があり、GCC のいくつかのバージョンがビルド サーバーにインストールされていることです。ラッパー プロジェクトを使用しLD_LIBRARY_PATHて環境を設定、準備しexport LD_LIBRARY_PATH=/path/to/gcclib/、ラッパー スクリプト内でアプリケーションを起動します。

さまざまな種類の gcc/g++ が使用されているため、 libstdc++.soがリンクされている暗黙的なライブラリ パスを取得する簡単な方法があるかどうかを知りたいと考えています。たとえば、GCC ツールの 1 つが/opt/gcc4/gcc4.7/bin/g++にインストールされ、libstdc++.so が/opt/gcc4/gcc4.7/lib/にある場合、別の GCC バリアントが見つかる場合があります。/usr/local/bin/g++および/usr/lib/libstdc++.soにあります。

0 投票する
1 に答える
12812 参照

c++ - 「プロシージャ エントリ ポイント _ZNSt8_detail15_List_node_base7_M_hookEPS0_ がダイナミック リンク ライブラリ libstdc -6.dll に見つかりませんでした。」

小さな問題があります。C++ コードがあり、いくつかのライブラリにリンクしています。私は以前にソースコードから(元の)exeを持っていて、それは最初のマシンで完全に動作します。2 番目のマシンでは、ソース コードの作業や変更などを行います。2 番目のマシンでは、そのソース コードのビルドが正常に機能し、second.exe をコピーして最初のマシンで実行しようとすると、問題が発生します。エラーメッセージが表示されます

「プロシージャ エントリ ポイント _ZNSt8_detail15_List_node_base7_M_hookEPS0_ がダイナミック リンク ライブラリ libstdc++-6.dll に見つかりませんでした。」

まず、second.exe は original.exe と同じフォルダにコピーされるため、元の dll は original.exe と同じフォルダにあるため、ddl が表示されるはずです。これは MinGW でコンパイルされ、NetBeans とプロジェクト プロパティで動作し、(ライブラリ ファイルの追加を介して) ライブラリが追加されますが、libstdc++-6.dll はそこに追加されません。libstdc++-6.dll は、original.exe があるフォルダーにあります。

どうも

0 投票する
1 に答える
941 参照

c++ - 非標準の場所で gnu libstdc++ とともに icpc を使用する

c++11 機能で icpc を使用しようとしていますが、インテルが提供していない c++11 stdlib が必要です。

RHEL 6 でユーザーとして実行しているため、システム libstdc++ が古くなっています。新しいバージョンがインストールされていますが、標準以外の場所にあります。

非標準の場所にある gcc std ライブラリにリンクするにはどうすればよいですか? どのフラグを使用しますか?

0 投票する
1 に答える
1248 参照

visual-c++ - msvc に必要なランタイム ライブラリの場所を取得する方法

さまざまなプラットフォーム (win32、SunOS など) とさまざまなコンパイラの構成、コンパイル、distrib の作成を実行する CMake のカスタム ラッパーがあります。必要なすべてのランタイム ライブラリ (libgcc_s.so、libstdc++.so (OS のような *nix 用)。msvcr90.dll、win32 用の msvcp100.dll) をディストリビューションに入れる必要があります。たとえば、gcc には、これらのライブラリの完全な名前を取得できるメカニズムがあります。

したがって、msvc (2008、2010) にも同様のメカニズムが必要ですが、これは可能ですか? (指定されたコンパイラの環境変数、レジストリ値、または他のものにすることができます)。または、そのような情報を取得するための CMake メカニズムがあるかもしれません。