pydをDependencyWalkerにかけてみる
2020-06-30 2020-07-02
ところでpydって、Windowsで言えばDLLだよね?
pydはまぁバイナリなわけで、SharedというかDLLというかですよね。
じゃぁWindowsならDependencyWalkerにかけてみましょう。
で、結果がこれ。
そうです。なんと、固有で依存してるのはpython37.dllのみで、
python37.dllは、固有で依存しているバイナリが存在しないようです。
いや、もちろん、動的にLoadLibraryされてたらわかりませんけどね。
とは言え、メインがpythonでうごくわけなので、Python環境が無いところで動くわけではないんだけれども。。。
あと、exportされてるのは、
PyInit_xxxxxxのみ
まぁ、hiraCntl部分はそういうpydなのだから、まぁ、PyInit_xxxxってのがexportされることになるんでしょう。きっと。
でも、理論的には、PyInitだけでもいい気がしますけどね。
そして、データや関数テーブルを引っ張ってくるんだろうと予測できますね。
pydってどうやって作るんですか?
これはたった3行のpyファイルを準備し、
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize(['ABCD.py']))
そんで、コマンドラインで、こんなことするだけです。
python PY_COMPILE.py build_ext -i --compiler=mingw32 -DMS_WIN64
まぁ、私はMinGW64なのでこんな感じです。
VCの場合はなんかパラメータが必要だったな。たしか。