【发布时间】:2010-07-08 11:22:01
【问题描述】:
我正在尝试为我正在组合的 C++ 库生成一个 python 包装器。我刚刚遇到 SWIG,并试图将其与 distutils 结合使用。我正在修改别人的代码,所以会出现奇怪的错误,但这只是令人困惑。
我已经成功地使用 SWIG 生成了一个 c++ 包装器文件,现在我正在尝试运行 setup.py 的修改版本以安装包装器(它本身可能工作也可能不工作,但我会跨过那座桥当涉及到它时。)在执行此操作时,会弹出有关无法包含头文件的编译器错误。具体来说 - 字符串、ostream、sstream、map 和向量。所有这些都是标准库,包含在“include”中。
代码本身可以编译,但在尝试以这种方式创建包装器时却没有。
我不完全确定哪些信息与此相关,但这就是扩展的制作方式:
## Extension definition
import os
wrapsrc = './project_rewrite_wrap.c'
incdir_src = os.path.abspath('../include/project')
incdir_build = os.path.abspath('../include/project')
libdir = os.path.abspath('../lib')
ext = Extension('_project_rewrite',
[wrapsrc],
include_dirs=[incdir_src, incdir_build],
library_dirs=[libdir, os.path.join(libdir,'.libs')],
libraries=['ProjectMain'])
运行的 gcc 命令是:
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ben/Project/rewrite/include/Project -I/home/ben/Project /rewrite/include/Project -I/usr/include/python2.6 -c ./project_rewrite_wrap.c -o build/temp.linux-i686-2.6/./project_rewrite_wrap.o
这会导致如下错误:
./project_rewrite_wrap.c:2696:18: 错误:字符串:没有这样的文件或目录
任何想法将不胜感激,谢谢。
【问题讨论】: