Windows、Linux和OSX下Python C/C++扩展编译链接参数问询
三大主流系统下C/C++构建Python扩展的编译链接参数整理
环境
Python 3.8.10 Windows 10 Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64) Msys2 (Mingw64)
本文旨在获取三大主流操作系统下,使用C/C++构建Python扩展所需的正确编译、链接参数及依赖库。
Windows Mingw64环境
执行命令python -m sysconfig得到的参数远少于Linux,且无编译链接相关信息。Mingw64编译器工具链在Windows上并非官方支持,按常规方法尝试后仍未成功(例如Cython编译用gcc、链接用g++且添加MSVC参数)。手动调试后得出以下参数:
Compilation C/C++: '-c', '-Ofast', '-fpic', '-mdll', '-Wall' Linking: '-shared' '-O', '-Wall' Macros: "-DMS_WIN64" Includes: "from sysconfig import get_paths as gp; gp()[\"include\"]" Libraries: "-lPythonXX"
Windows MSVC环境
目前未使用MSVC,但即将切换,恳请提供该环境下所需的编译链接参数。
Linux环境
有两种获取方式:
python3 -m sysconfig & python-config --cflags python-config --ldflags
手动整理出以下参数:
Compilation C/C++ : "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2" Linking : "-shared -fPIC -Wl, -O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2" Macros: "" Includes: "from sysconfig import get_paths as gp; gp()[\"include\"]" Libraries: "-lcrypt -ldl -lm -lm -lPythonXX"
OSX环境
暂无Apple Mac OSX设备,推测参数与Linux一致,烦请指正是否有误。
内容的提问来源于stack exchange,提问作者Prashant
相关产品推荐
相关产品推荐

