6
警告:C++例外とLDのシンボル私はC++で例外を作成して遊んでいると私は、次のテストコード持って
#include <iostream>
#include <stdexcept>
#include <new>
using namespace std;
class Myerror : public runtime_error {
private:
string errmsg;
public:
Myerror(const string &message): runtime_error(message) { }
};
int main(int argc, char *argv[]) {
throw Myerror("wassup?");
}
を私はこれをコンパイルしています:
ICPC -std = C +
:コンパイル時11 -03 -m64私はこのLDの警告を取得しています
ld:警告:グローバル・ウィーク・シンボルへの直接アクセス __ZN7MyerrorD1Evは、実行時にウィーク・シンボルをオーバーライドできないことを意味します。これは、さまざまな可視性設定でコンパイルされた異なる翻訳単位 によって引き起こされた可能性があります。
icpcの代わりにg ++を使用すると、この警告が表示されません。
私はこれが何を意味するのか、この警告を生成する原因を理解できませんでした。コードは期待どおりに実行されますが、私は望ましくないことを起こしています。
「#を含む」でしたか? –
'-fvisibility = hidden'でコンパイルしようとしましたか? – user2155932
@jotep文字列を含めて何も変わらなかった。 – deepak