2017-04-15 18 views
0

ライブラリyaml-cppを使用するC++プログラムを作成しました。私はcmakeを使って自分で構築しました。ライブラリは現在、/usr/local/lib/libyaml-cpp.aにあります。 私のEclipseプロジェクトでは、プログラムの構築はうまくいきます。mexコンパイル中のリンクエラー

matlabでプログラムの出力をテストするために、私はmexラッパーにプログラムを埋め込みました。 私は、次のMEXコマンドをコンパイルしよう:私はYAML-CPPライブラリを使用して開始するまで

prefix = '../../Synthesizer/src/'; 
mex ('-g', '../mex/synth_process_mex.cpp', [prefix 'test/TestClient.cpp'], [prefix 'Synth.cpp'], ... 
    [prefix 'DataReader.cpp'], [prefix 'StochasticDataReader.cpp'], [prefix 'GlobalMath.cpp'],... 
    [prefix 'Sinusoid.cpp'], [prefix 'Interpolator.cpp'], [prefix 'OSCReceiver.cpp'],... 
    [prefix 'Voice.cpp'], '-lyaml-cpp'); 

これは、正常に動作するために使用しました。今、Matlabは次のエラーメッセージを返します:

Error using mex 
/usr/bin/ld: //usr/local/lib/libyaml-cpp.a(parse.cpp.o): Die Umlagerung von 
//usr/local/lib/libyaml-cpp.a: error adding symbols: Ungültiger Wert 
collect2: error: ld returned 1 exit status 

誰でも助けてくれますか?申し訳ありませんが、コンパイラメッセージの言語を変更する方法がわかりませんでした。

答えて

0

私は、yaml-cppの静的ライブラリ版を使用していたようです。私は共有ライブラリlibyaml-cpp.soに変更しました。

関連する問題