我正在尝试在 Arch Linux 下构建omniORB 4.1.6。当我输入 时make
,消息如下:
../../../../../src/tool/omniidl/cxx/idlpython.cc:188:26: fatal error: python3.3/Python.h: No such file or directory
# include PYTHON_INCLUDE
我确信 python3 和 python2 都已安装,并且我记得上次我尝试在 Linux Mint 下做同样的事情时遇到了同样的问题。当时我用这个命令解决了这个问题:
sudo apt-get install python-dev
然而,Arch 似乎并没有将 python-dev 与 python 分开。我检查了我的/usr
并在 下找到了 Python.h /usr/include/python3.3m
,那么我现在应该做什么?
答案1
正常运行
./configure
在跑步之前make
应该正确设置一些东西,但在今年秋天,情况似乎并非如此。
Python 3.3.X 将其头文件放入.../include/Python3.3m
,而 2.7.x 使用 .../include/python2.7
(没有任何后缀),也许omniORB
(尚)不知道该后缀m
。
您可以使用以下命令建立从 python3.3m 到 python3.3 的链接:
cd /usr/include
ln -s python3.3m python3.3
并重试构建过程(假设使用 python3.3 配置,根据需要--prefix=/usr
进行调整)。cd
答案2
对于那些已经安装了 python-dev 包但仍然出现错误的人;
我认为PYTHON
配置命令行上的参数是文件的目录Python.h
...不,使用解释器的路径。
我在omniORB中创建并使用了一个“build”目录;
cd "omniORB install loc"; mkdir build; cd build; ...
您可以将 Python 的位置作为配置命令行的一部分给出。
../configure ... PYTHON=/usr/bin/python3
就我而言,安装了 OmniORB/opt
并将/opt
其用作其主目录:
../configure --prefix=/opt/omniORB.build.4.3.0 --with-omniORB-config=/opt/omniORB.build.4.3.0/omniORB.cfg --with-omniNames-logdir=$HOME/logs PYTHON=/usr/bin/python3