Python 2.6を使用して、PythonC拡張モジュールのRPMを構築しようとしています。
setup.py
私が使用しているものには、次のようなものが含まれています。
from distutils.core import setup, Extension
foo_ext = Extension('foo',
sources=['foo.c', '../src/common.c'],
include_dirs=['../includes'])
setup(... , ext_modules=[foo_ext])
python setup.py build
たとえば、から実行する/devel/foo
と、エラーなしでコンパイルおよびビルドさgcc
れ、正しいパスで呼び出されます。
gcc ... -I/devel/includes ...
代わりに使用python setup.py bdist_rpm
すると、上記で使用した相対パスがRPMビルドディレクトリを基準にした絶対パスに変換されます。これにより、次gcc
を使用してコンパイルが試行されます。
gcc ... -I/devel/foo/build/bdist.linux-x86_64/rpm/BUILD/includes ...
.h
インクルードパスに必要なファイルが見つからないため、コンパイルは失敗します。
これに対する提案や回避策はありますか?