Incrustar todas las referencias externas al crear una biblioteca estática

Necesito crear una biblioteca de envoltorio para el código C que envuelve mi biblioteca de C ++. ¿Hay una manera de crear esa biblioteca de envoltura de tal manera que el usuario solo necesite vincular esta biblioteca de envoltura y no tenga que incluir todas las bibliotecas (C ++) en la línea de comandos del vinculador?

La estructura de mi proyecto de prueba se ve así:

.
├── lib
│   ├── cpp
│   │   ├── print.cc
│   │   └── print.h
│   ├── lib.cc
│   ├── lib.h
└── main.c

Main.c es una aplicación de ejemplo de C que usa mi biblioteca. Los archivos lib.h y lib.cc son la biblioteca de contenedor que contiene los enlaces en C. Mi biblioteca de C ++ reside en la subcarpeta cpp.

En este momento lo tengo funcionando usando la siguiente cadena de comandos:

cd lib
g++ -c lib.cc
ar rcs libib.a lib.o
cd ..
gcc -Ilib -Llib main.c -lib -lstdc++

Sin embargo, como puede ver, el paso del vinculador necesita que el usuario incluya las bibliotecas de C ++ utilizadas en mi biblioteca de C ++. En este caso, libstdc ++. So (o libstdc ++. A si se usa -static).

Me gustaría incluir todas las bibliotecas de C ++ en mi libib.a de manera que el usuario pueda simplemente usar el siguiente comando para compilar:

gcc -Ilib -Llib main.c -lib

Respuestas a la pregunta(1)

Su respuesta a la pregunta