0
私はSetup Guide of another Postに続き、XCodeをROOT IDEとして使用しています。今私は、同じプロジェクト内Minuit2 example codeを含めることを試みた:Cern ROOT XCode IDEがコンパイルされない
:私は根のマクロとしてコードをテストし、それがうまく働いたが、XCodeの中でそれをコンパイルしようとすると、次のエラーを得アーキテクチャx86_64のため#include "Minuit2/Minuit2Minimizer.h" #include "Math/Functor.h" double RosenBrock(const double *xx) { const double_t x = xx[0]; const double_t y = xx[1]; const double_t tmp1 = y-x*x; const double_t tmp2 = 1-x; return 100*tmp1*tmp1+tmp2*tmp2; } int main() { // Choose method upon creation between: // kMigrad, kSimplex, kCombined, // kScan, kFumili ROOT::Minuit2::Minuit2Minimizer min (ROOT::Minuit2::kMigrad); min.SetMaxFunctionCalls(1000000); min.SetMaxIterations(100000); min.SetTolerance(0.001); ROOT::Math::Functor f(&RosenBrock,2); double step[2] = {0.01,0.01}; double variable[2] = { -1.,1.2}; min.SetFunction(f); // Set the free variables to be minimized! min.SetVariable(0,"x",variable[0], step[0]); min.SetVariable(1,"y",variable[1], step[1]); min.Minimize(); const double *xs = min.X(); std::cout << "Minimum: f(" << xs[0] << "," << xs[1] << "): " << RosenBrock(xs) << std::endl; return 0; }
未定義シンボル:アーキテクチャx86_64のため 定義されたシンボル: "ROOT :: Minuit2 :: Minuit2Minimizer :: SetFunction(ROOT ::数学:: IBaseFunctionMultiDimのCONST &)" から参照:main.o
で_main
とserveralより未定義のシンボル。
どうしたのですか?
私は
sudo port install root6
を経由してMacPortsを持つROOTをインストールし、バリアント+ minuit2がインストールされていることを確認しました。それから私はのリンク検索パスとを追加しました: あなたが
-lMinuit2
を追加する必要があります。私はこの質問を自分自身に答えるために
root/bin/root-config --libs
'root-config --libs'はすべてのルートライブラリを追加しません。それはコアライブラリの最小限のセットです。通常、リンカエラーが発生した場合、 'root-config --libdir'の' * .rootmap'ファイルをチェックすることができます。このファイルには、欠落しているクラスが含まれています。 – pseyfert