0

OS Xにhqpをインストールしようとしていますが、gccコンパイラがかなり違うようです。を実行するmakeと、最初に次のようなエラーが発生します。ヘッダーを次malloc.h not foundのようにラップします。#include

#if !defined(__APPLE__)
#include <malloc.h>
#endif

このようにして、最初の問題が解決されます。しかし、私が走り続けるとmake、私は次のようなものを手に入れました:

g++ -shared -o libhqp.so Hqp_Init.o Hqp.o sprcm.o Meschach.o spBKP.o matBKP.o bdBKP.o Hqp_impl.o Hqp_Program.o Hqp_Solver.o Hqp_Client.o Hqp_IpsFranke.o Hqp_IpsMehrotra.o Hqp_IpMatrix.o Hqp_IpSpBKP.o Hqp_IpRedSpBKP.o Hqp_IpLQDOCP.o t_mesch.o Hqp_IpSpSC.o meschext_hl.o Hqp_SqpSolver.o Hqp_SqpPowell.o Hqp_SqpSchittkowski.o Hqp_HL.o Hqp_HL_Gerschgorin.o Hqp_HL_DScale.o Hqp_HL_BFGS.o Hqp_HL_SparseBFGS.o Hqp_SqpProgram.o Hqp_Docp.o hqp_solve.o \
          ../meschach/*.o ../iftcl/*.o -L"/sw/lib" -Wl,-rpath,"/sw/lib" -ltclstub8.5
i686-apple-darwin11-llvm-g++-4.2: ../meschach/*.o: No such file or directory
i686-apple-darwin11-llvm-g++-4.2: ../iftcl/*.o: No such file or directory

今回はどのコンポーネントが違うのか誰か知っていますか?最新バージョンのtclを再インストールしようとしましたが、問題はないようです。解決策をグーグルで検索するのは本当に難しいと思います...

4

1 に答える 1

0

実際に結果をテストせずに、次の手順を使用してこれを機能させることができました。特に依存関係の設定方法に関しては、このmakefileのセットが正常に機能しないことを言わなければなりません。

まず、を編集meschach/machine.hして削除するか、 ifdef#include <malloc.h>で行ったように条件付きにします。__APPLE__含まれている唯一の理由malloc.hはのためであるように思われmalloc()、とにかくfree()それらは含まれます。stdlib.h

次に、編集makedirs.inしてに追加-I/usr/include/mallocMES_INCDIR、を残しますMES_INCDIR = -I.. -I/usr/include/malloc

これらの2つの手順を実行すると、./configure続いて実行すると、ディレクトリにmakeすでに登録されているはずです。これで十分な場合があります。libhqp.solib

ただし、処理中に実行されるdocpディレクトリに呼び出される実行可能ファイルもあります。共有ライブラリが見つからないため、機能しません。ディレクトリに-ingして設定することで、これを解決しました。ただし、実行がプロセスの重要な部分であるかどうかはわかりません。hqp_docpmakelibhqp.socdlibexport DYLD_FALLBACK_LIBRARY_PATH=$PWDdocp

最後に、omuリンカに必要なライブラリへの参照が渡されないため、breaksと呼ばれるライブラリの構築が中断されますlibhqp.so。これが他のシステムで機能する理由がわかりませんでした。また、それが必要かどうかもわかりませんlibomu-L../lib -lhqpのlinker-commandの最後に追加することで、簡単な修正を行いましたomu/Makefile。これは、で始まるコマンド$(LD)です。

私が取った手順のいずれかを忘れなかったことを願っています。それでもどこかでうまくいかない場合はお知らせください。

于 2013-03-27T16:39:50.347 に答える