向python包ins传递编译器标志

2024-09-23 22:29:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个必须在非标准位置安装libsnapy dev的系统上安装this package,并且不知道如何在自动安装中包括正确的标志来帮助gcc找到dev文件。在

可以预见,当我试图从github安装

pip git+git://github.com/andrix/python-snappy

我得到一个编译错误,因为找不到.h文件(在非标准的地方)。在

^{pr2}$

我只是一个构建软件的黑客,但我认为我需要设置LDFLAGS变量如下:

export LDFLAGS="-L/app/vendor/snappy/usr/local/lib -L/app/vendor/snappy/usr/local/include"

但是,这并不是上面列出的gcc调用。有什么办法解决这个问题吗?在

编辑:进度。分岔快换

snappymodule = Extension('_snappy',
                     libraries=['snappy'],
                     sources=['snappymodule.cc', 'crc32c.c'])

snappymodule = Extension('_snappy',
                     libraries=['snappy'],
                     sources=['snappymodule.cc', 'crc32c.c'],
                     extra_compile_args=['-L/app/vendor/snappy/usr/local/lib -L/app/vendor/snappy/usr/local/include', 
                     '-I/app/vendor/snappy/usr/local/lib -I/app/vendor/snappy/usr/local/include'])

已将错误推进到

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c snappymodule.cc -o build/temp.linux-x86_64-2.7/snappymodule.o -L/app/vendor/snappy/usr/local/lib -L/app/vendor/snappy/usr/local/include -I/app/vendor/snappy/usr/local/lib -I/app/vendor/snappy/usr/local/include

意味着我们至少可以传递旗帜。仍在试图找出正确的标志是什么。手动检查仍然可以确认snappy.h在附近。在

~/vendor/snappy/usr/local/include $ pwd
  /app/vendor/snappy/usr/local/include
~/vendor/snappy/usr/local/include $ ls
  snappy-c.h  snappy.h  snappy-sinksource.h  snappy-stubs-public.h

Tags: 文件devgithubappinclude标志libusr