3

Mac OSにMathGLをインストールすることに成功しmglGraph、サンプルグラフを生成することができました。しかし、を使用mglDataしてデータを処理しようとすると、「EXC_BAD_ACCESS」エラーでクラッシュします。なんで?やらなくてはいけないことはありますか?

mathglをcmake、make、make installでインストールしました(安全のためにsudoを使用)。次に、プロジェクトに/ usr / local/includeパスと/usr/ local / libパスを追加し、プロジェクトにlibmgl.dyliblibmgl-wnd.dylibの参照を追加しました。見逃したことはありますか?エラーのある他の人を見つけることができませんでした(まあ、私は多くの悪いアクセスエラーを見つけましたが、mglDataによって引き起こされたものはありませんでした)。mglDataインスタンスを作成しようとするとすぐにエラーがポップアップするため、これらのいずれかが例外をトリガーします。


mglData *data = new mglData();
mglData data;
etc...

編集

だから、これがコンパイルするがクラッシュする私のコードの骨組みです:


#include iostream
#include mgl2/mgl.h

int main(int argc, const char * argv[])
{
    mglData y;   
    return 0;
}

クラッシュしたときのスレッドの呼び出しスタックは次のとおりです。

スレッド呼び出しスタック

そして、すべての変数の値は次のとおりです。

変数値


半解決済み 実行中

プロジェクトをg++でコンパイルできた後、ビルド設定を変更してみましたが、誰がそれを信じていたので、なんとか実行できました。私がしたのは、C++標準ライブラリをに変更することだけでしたlibstdc++ (GNU C++ standard library)。現在、デフォルトのを使用していません。これはを使用することlibc++ (LLVM C++ standard library with C++ 11 support)です。現時点では、これは私のCocoaアプリケーションでも問題なく機能しているようですが、どのくらいの期間かわかりません:P(NS *クラスをさらに使用する場合は、LLVMが必要になるのではないかと心配していますか?)

それでも、この問題を(ビルド設定を変更せずに)どのように解決できるか、または解決できないかどうかに非常に興味があります。

4

1 に答える 1

0

私は一緒に働いていてmathgl 2.1.2、同じ問題に遭遇しました。ランタイム ライブラリ間に不一致があります。コンパイラのデフォルトMathglを使用しますが、新しいカンマライブ プロジェクトを作成するときは、. 文字列は を介し​​て実行可能ファイルに割り当てられますが、別のランタイム ライブラリを使用するに渡されます。あるライブラリで割り当てられたポインタが別のライブラリに渡されて解放されると、メモリ操作が失敗する可能性があります。構造の違いもあるでしょう。llvmLLVMMathgl

于 2013-03-03T19:35:51.920 に答える