問題タブ [g++]
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.
c++ - C++ 関数のテンプレート特殊化の可視性
テンプレート関数を持つfileA.h
クラスを宣言するものがあるとします。この関数は、(通常のテンプレート関数と同様に) ヘッダー ファイルに直接実装されます。ここで、(for のような)の特殊な実装を(つまり、ヘッダー ファイルではなく) 追加します。classA
SomeFunc<T>()
SomeFunc()
SomeFunc<int>()
fileA.C
SomeFunc<int>()
他のコードから (おそらく別のライブラリからも) 呼び出す場合、ジェネリック バージョンまたは特殊化を呼び出すでしょうか?
クラスと関数が2つのアプリケーションで使用されるライブラリに存在するという問題が現在発生しています。また、あるアプリケーションは特殊化を正しく使用していますが、別のアプリケーションは一般的な形式を使用しています (後で実行時の問題が発生します)。違いはなぜですか?これはリンカーオプションなどに関連している可能性がありますか? これは Linux で g++ 4.1.2 を使用しています。
c++ - C++での「静的」メソッドのリンクに関する問題
別のファイルで定義されたCPPクラスのいくつかの「静的」メソッドを呼び出したいのですが、リンクに問題があります。問題を再現するテストケースを作成しました。そのコードは次のとおりです。
(私はC ++に完全に慣れていません。私は、Javaのバックグラウンドを持っており、Cに少し精通しています。)
コンパイルしようとすると、次のエラーが発生します。
しかし、main.cppのクラス宣言を削除し、それを#include "CppClass.cpp"に置き換えると、正常に機能します。基本的に、これらの宣言を別の.hファイルに入れて使用したいと思います。私は何かが足りないのですか?
助けてくれてありがとう。
gcc - g++/gcc 3.2.3 から 4.2.4 へのパフォーマンスの向上
私たちは g++ バージョン 3.2.3 と 4.2.4 を見てきました。4.2.4 では、一部のコード ベースのパフォーマンスが大幅に向上しています。
gcc buzilla データベースを検索して、劇的に改善された可能性のあるバグに関するヒントを見つけようとしましたが、候補として際立った個々のバグは見つかりませんでした。
改善は、ゆっくりと影響を与えた多くの小さな変更の結果ですか? それとも、違いをもたらした可能性のある上位 5 つの改善セットがありましたか?
背景として、私たちのコード ベースは、STL コンテナーとアルゴリズム、および「inline」キーワードなどの C++ 機能をうまく利用しています。
c++ - C ++コードをMacOSに移植するためのいくつかの推奨事項は何ですか?
今後のプロジェクトでは、WindowsおよびLinuxでコンパイルされる既存のC ++コードをMacOS(leopard)に移植する計画があります。ソフトウェアはコマンドラインアプリケーションですが、GUIフロントエンドが計画されている可能性があります。MacOSはg++コンパイラを使用します。Linuxと同じコンパイラを使用することで、問題は発生しないように見えますが、常に問題が発生します。
移植中に注意すべき推奨事項や問題はありますか?
c++ - g++ と gcc の違いは何ですか?
g++ と gcc の違いは何ですか? 一般的な C++ 開発に使用する必要があるのはどれですか?
c++ - サブクラスからの保護されたメンバーへのアクセス: gcc と msvc
ビジュアル C++ では、次のようなことができます。
これを g++ でコンパイルしようとすると、エラーが発生します。私はこれをしなければなりません:
標準 C++ で前者を実行することは想定されていませんか? または、gcc で何かが誤って構成されており、エラーが発生していますか?
qt - Qt アプリケーションが見事に失敗する
Qt アプリケーションをそのライブラリとリンクしようとしていますが、リンカー (MinGW) が次のような行を何百も吐き出します。どうすればよいかわかりません。
c++ - リンク上の未定義のシンボル___gxx_personality_v0
私はこのコマンドラインでこの未定義のシンボルを構築しています:
test.cppは単純で、正常にビルドされるはずです。契約は何ですか?
c++ - GCCとldはエクスポートされたシンボルを見つけることができません...しかしそれらはそこにあります
ライブラリからエクスポートされた関数とクラスを使用しようとしているC++ライブラリとC++アプリケーションがあります。ライブラリは正常にビルドされ、アプリケーションはコンパイルされますが、リンクに失敗します。私が得るエラーはこのフォームに従います:
app-source-file.cpp:(。text+0x2fdb): `lib-namespace :: GetStatusStr(int)'への未定義の参照
ライブラリ内のクラスはリンカによって問題なく解決されているように見えますが、フリー関数とエクスポートされたデータ(コサインルックアップテーブルなど)は常に上記のエラーになります。
私はUbuntu8.04(Hardy)を使用していますが、最新のUbuntuパッケージで最新です。
ライブラリをリンクするコマンドは次のとおりです(他のライブラリは削除されています)。
アプリケーションをリンクするコマンドは次のとおりです(他のライブラリは削除されています)。
最後に、問題のシンボルが適切にエクスポートされているように見えます(私が知る限り):