3

これを理解するのに 1/2 日相当を要したので、私が遭遇した Quickfix Engine のコンパイルの問題とその解決策を共有したいと思います。

「Quickfix Engine」ヘルプ リソースからの返信がありませんでした: 「http://quickfixengine.org/help」... したがって、これを提供するもう 1 つの理由です。

環境: Fedora 18 - および - CentOS6 (64 ビット)。

Python サポート (構成 [opts]; make; make install) を使用して Quickfix を正常にコンパイルした後、Python モジュール "_quickfix" が見つからないことを示す次の Python インポート例外が発生しました。

==============================================
user$ python -c "import quickfix"

Traceback (most recent call last):
File " ", line 1, in
File "/home/user/APPS.d/ENTHOUGHT-PYTHON-IDE.d/x86_64.d/latest/lib/python2.7/site-packages/quickfix.py", line 7, in

import _quickfix
ImportError: No module named _quickfix
==============================================

この問題は、「make install」によって呼び出されるインストール スクリプトにあるようです。

Python インタープリターは、「_quickfix」モジュールが終了しないと言っています。以下の「make install」によってインストールされるファイルのリストからわかるように、「_quickfix.py」ファイルはありませんが、「_quickfix.so」ファイルと「_quickfix.dylib」ファイルへの参照があります。

/home/user/.local/lib/python2.7/site-packages/_quickfix.dylib -> /home/user/APPS.d/QUICKFIX.d/latest/lib/python/_quickfix.dylib
/home/user/.local/lib/python2.7/site-packages/_quickfix.so -> /home/user/APPS.d/QUICKFIX.d/latest/lib/python/_quickfix.so
/home/user/.local/lib/python2.7/site-packages/quickfix40.py
/home/user/.local/lib/python2.7/site-packages/quickfix41.py
/home/user/.local/lib/python2.7/site-packages/quickfix42.py
/home/user/.local/lib/python2.7/site-packages/quickfix42.pyc
/home/user/.local/lib/python2.7/site-packages/quickfix43.py
/home/user/.local/lib/python2.7/site-packages/quickfix44.py
/home/user/.local/lib/python2.7/site-packages/quickfix50.py
/home/user/.local/lib/python2.7/site-packages/quickfix50sp1.py
/home/user/.local/lib/python2.7/site-packages/quickfix50sp2.py
/home/user/.local/lib/python2.7/site-packages/quickfix.py
/home/user/.local/lib/python2.7/site-packages/quickfix.pyc
/home/user/.local/lib/python2.7/site-packages/quickfixt11.py

/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix.la
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix_python.la
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix_python.so.10.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix_python.so.10 -> libquickfix_python.so.10.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix_python.so -> libquickfix_python.so.10.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix.so.14.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix.so.14 -> libquickfix.so.14.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/libquickfix.so -> libquickfix.so.14.0.0
/home/user/APPS.d/QUICKFIX.d/latest/lib/pkgconfig/quickfix.pc
4

3 に答える 3

1

Ubuntu 13.04 でも同じ問題がありました。Python サポートで構成され、デフォルトの宛先 (/usr/local/...) を使用しました。コンパイルが成功したら、次の手順で同様の解決策を見つけました。

  1. 不足しているファイル/シンボリック リンクを作成します。

    cd /usr/local/lib

    sudo ln -s libquickfix_python.so _quickfix.so

    sudo ln -s _quickfix.so _quickfix.dylib

  2. 既存のシンボリック リンクを新しい場所に変更/更新します。

    cd /usr/lib/python2.7/dist-packages/

    sudo ln -s /usr/local/lib/_quickfix.so _quickfix.so

    sudo ln -s /usr/local/lib/_quickfix.so _quickfix.dylib

  3. 新しいライブラリ パスを追加

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}/usr/local/lib

于 2013-07-25T17:12:47.227 に答える
1

複数のシンボリック リンクを作成する必要はありません。問題のあるシンボリック リンクを削除し、_quickfix.so の新しいシンボリック リンクを 1 つ作成するだけで、すべてが機能します。

rm /usr/local/lib/python2.7/site-packages/_quickfix.dylib
rm /usr/local/lib/python2.7/site-packages/_quickfix.so
ln -s /usr/local/lib/libquickfix_python.dylib /usr/local/lib/python2.7/site-packages/_quickfix.so

これは OS X 上にあります。Linux の場合は、以下を使用する必要があります (dylib 拡張機能は OS X 固有であるため)。

ln -s /usr/local/lib/libquickfix_python.so /usr/local/lib/python2.7/site-packages/_quickfix.so
于 2014-06-23T11:21:23.410 に答える