Python -g CFLAG和扩展名-g标志

时间:2018-12-13 14:33:14

标签: python boost-python python-c-api python-extensions

我正在尝试将一些使用boost(boost thread,boost python)的CPP库编译为python扩展,问题是在编译和安装后,扩展的大小太大(〜300MB),但是CPP和相关库约为30 MB。

这是在构建扩展时看到的命令行输出:

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DBOOST_PYTHON_STATIC_LIB -I. -I./inc -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -c my_lib.cpp -o build/temp.linux-x86_64-2.7/my_lib.o -std=c++11 -Wno-write-strings -O3

编译器获取“ -g”标志,该标志说包括gdb的调试信息(根据https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

Distutils默认设置该标志,并从Python本身使用usr/bin/python2.7-config --cflags编译的标志中获取该标志。

所以我有两个问题:

  1. 为什么正式的python docker docker映像包含-g标志(甚至是苗条),为什么我们需要它?
  2. 我是否必须使用-g标志编译扩展名?如果我在不带“ -g”标志的情况下进行编译,则扩展名的大小约为30 mb,但我担心我会丢失某些内容。

谢谢!

0 个答案:

没有答案