опция gcc, чтобы игнорировать зависимость libstdc ++. so.5 - PullRequest
1 голос
/ 12 октября 2011

после сборки общей библиотеки с помощью gcc, общая библиотека собирается нормально, но когда я запускаю «ldd», это дает мне зависимость от «libstdc ++. So.5», есть ли способ сообщить компилятору igonre gcc so fileзависимость

# ldd libtest.so 
            libstdc++.so.5 =>        /opt/gcc/libstdc++.so.5
            libsocket.so.1 =>        /lib/libsocket.so.1
            libnsl.so.1 =>   /lib/libnsl.so.1
            libc.so.1 =>     /lib/libc.so.1
            libmp.so.2 =>    /lib/libmp.so.2
            libmd.so.1 =>    /lib/libmd.so.1
            libscf.so.1 =>   /lib/libscf.so.1
            libdoor.so.1 =>  /lib/libdoor.so.1
            libuutil.so.1 =>         /lib/libuutil.so.1
            libgen.so.1 =>   /lib/libgen.so.1
            libm.so.2 =>     /lib/libm.so.2
            /platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
            /platform/SUNW,SPARC-Enterprise-T5220/lib/libmd_psr.so.1

Какую опцию компилятора я должен дать, которая будет игнорировать зависимости типа "libstdc ++. so.5"?

1 Ответ

2 голосов
/ 12 октября 2011

после сборки общей библиотеки с использованием gcc, общая библиотека собирается нормально, но когда я запускаю «ldd», это дает мне зависимость от «libstdc ++. So.5»

gcc не связывает автоматически libstdc ++, g ++ делает. Таким образом, либо вы связываетесь с g ++, либо вы передаете -lstdc++ параметр компоновщика.

У вас есть несколько вариантов:

  • Сборка и связывание с gcc, а не g++, чтобы убедиться, что libstdc ++ не будет связан автоматически. Не передавайте -lstdc++ вариант компоновщика. Очевидно, это работает только с кодом C.
  • Сборка и связывание с g++ и статическое связывание libstdc ++ с использованием опции -static-libstdc++ link stage.
...