Python -g CFLAG и расширение -g flag - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь скомпилировать некоторую библиотеку CPP, которая использует boost (boost thread, boost python) для расширения python, проблема в том, что после компиляции и установки размер расширения слишком велик (~ 300 МБ), но CPP исвязанные библиотеки - ~ 30 МБ.

Вот вывод командной строки, который я вижу при сборке расширения:

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 включает флаг -g (даже тонкий), зачем он нам нужен?
  2. Нужно ли мне компилировать свое расширение с флагом -g? Если я его компилируюбез флага "-g" размер моего расширения составляет ~ 30 мб, но я боюсь, что что-то упустил.

Спасибо!

...