distutils.core.Extension
으로 공유 객체 생성을 비활성화 할 수 있습니까? 링크하기 전에 컴파일러를 중지하고 싶습니다 (예 : g++ -c ...
).distutils의 링크 단계 사용 안함 확장자
나는 개체 파일과 파이썬 파일을 만드는 네이티브 파일을보고있다. 나중에이 객체 파일과 링크 할 다른 코드를 컴파일해야하므로 .o
컴파일 후에이 작업을 진행하지 마십시오.
$ python setup.py build
running build
....
building 'foo' extension
swigging src/foobar.i to src/foobar.cpp
swig -python -c++ -o src/foobar.cpp src/foobar.i
여기에서 중단하고 싶습니다.
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/src
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Isrc -I/usr/include/python2.7 -c src/foobar.cpp -o build/temp.linux-x86_64-2.7/src/foobar.o
g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/src/foobar.o -o build/lib.linux-x86_64-2.7/foobar.so
직접 컴파일러 클래스를 사용해야합니까? 아니면 Extension
수업을 다룰 수있는 방법이 있습니까?
23 ext_modules=[
24 # Swig
25 Extension(
26 name='foobar',
27 sources=['src/foobar.i'],
28 include_dirs=['src'],
29 swig_opts=['-c++'],
30 ),
31 ]
distutils에서'build_extension' 명령이 당신을 위해 그렇게하는 것처럼 보입니다. 그리고 build_ext.compiler 클래스를 해킹하지 않고는 할 수있는 일이별로 없습니다. https://fossies.org/dox/Python-2.7.13/build__ext_8py_source.html#l00451 –