Компиляция g cc с флагами отладки - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь собрать g cc версию 10.00.1 из источника с флагами отладки, чтобы некоторые функции, такие как методы из STL, могли печатать в GDB. Прямо сейчас GDB скажет такие вещи, как «не может найти метод std :: stringstream :: str», даже когда у меня установлен флаг -g3 при компиляции моей программы.

Документация g cc говорит настройте приложение, используя флаг --enable-libstdcxx-debug, чтобы включить эту поддержку. Я решил собрать приложение с теми же флагами, которые настроил мой дистрибутив g cc, с которыми

-v --with-pkgversion='Debian 9.2.1-28' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex

после успешных make и make install У меня все еще то же самое проблема с GDB не найти методы. Я решил собрать libstdc ++ сам по себе только с флагом --enable-libstdc++-debug. Но я не могу найти где файл libstdc ++. So.6 в сборке. Я еще не запускал make install, так как не хочу ломать свою систему. Где должен быть libstdc ++. So.6 в сборке? Спасибо

1 Ответ

0 голосов
/ 19 февраля 2020

Я еще не запускал make install, поскольку я не хочу ломать систему.

Используйте параметр --prefix для configure, чтобы указать альтернативное расположение для установки чтобы избежать замены вашей системы gcc.

Я решил собрать libstdc++ сам по себе только с флагом --enable-libstdc++-debug.

Убедитесь, что вы make clean после повторного configure, так что make перестраивает его с новыми флагами компилятора и компоновщика.

...