Articles of linker

¿Cómo incluir todos los objetos de un archivo en un objeto compartido?

Al comstackr nuestro proyecto, creamos varios archivos (bibliotecas estáticas), por ejemplo, liby.a y libz.a que contienen un archivo de objeto que define una función y_function() y z_function() . Luego, estos archivos se unen en un objeto compartido, digamos libyz.so , que es uno de nuestros principales libyz.so distribuibles. g++ -fPIC -c -o yo y.cpp ar […]

CMake: use un enlazador personalizado

Quiero configurar una cadena de herramientas personalizada con qmake. Configuré el comstackdor pero no sé cómo configurar el enlazador. Este error se informa porque cmake intenta usar el comstackdor para vincular: The C compiler “xgcc.exe” is not able to compile a simple test program. Aquí hay un fragmento de mi archivo toolchain # specify the […]

ld pregunta del enlazador: la opción –archivo completo

El único uso real de la opción de enlazador de –whole-archive que he visto es la creación de bibliotecas compartidas a partir de las estáticas. Recientemente me encontré con Makefile (s) que siempre usan esta opción al enlazar con bibliotecas estáticas internas. Por supuesto, esto hace que los ejecutables extraigan innecesariamente código objeto no referenciado. […]

variables estáticas en una función en línea

Tengo una función que se declara y define en un archivo de encabezado. Este es un problema en sí mismo. Cuando esa función no está en línea, cada unidad de traducción que usa ese encabezado obtiene una copia de la función, y cuando están vinculadas entre sí, se duplican. Lo “corregí” al hacer la función […]

gcc no incluirá math.h correctamente

Aquí hay un ejemplo mínimo que describe mi problema test.c: #include #include main () { fmod ( 3, 2 ); } Y aquí está el comando que estoy emitiendo para comstackr test.c gcc -lm test.c -o test Y aquí está la salida que obtengo cuando publico el comando anterior /tmp/ccQmRk99.o: In function `main’: test.c:(.text+0x3e): undefined […]

GNU gcc / ld – envolviendo una llamada al símbolo con el llamador y el destinatario definidos en el mismo archivo de objeto

para aclarar, mi pregunta se refiere a envolver / interceptar llamadas de una función / símbolo a otra función / símbolo cuando la persona que llama y la persona que llama se definen en la misma unidad de comstackción con el comstackdor y el vinculador de GCC. Tengo una situación parecida a la siguiente: /* […]

Cómo un enlace estático en OS X

Intento vincularme a una biblioteca estática en OS X. Utilicé el indicador -static en el comando gcc pero recibo el siguiente mensaje de error: ld_classic: no se puede encontrar el archivo para: -lcrt0.o collect2: ld devolvió 1 estado de salida Busqué en las páginas man y se lee algo así como: Esta opción no funcionará […]

¿Por qué recibo un error de “referencia indefinida a sqrt” aunque incluyo el encabezado math.h?

Soy nuevo en C y tengo este código: #include #include int main(void) { double x = 0.5; double result = sqrt(x); printf(“The square root of %lf is %lf\n”, x, result); return 0; } Pero cuando compilo esto con: gcc test.c -o test Me sale un error como este: /tmp/cc58XvyX.o: In function `main’: test.c:(.text+0x2f): undefined reference […]

¿Por qué se produce el error fatal “LNK1104: no se puede abrir el archivo ‘C: \ Program.obj'” cuando compilo un proyecto de C ++ en Visual Studio?

Creé un nuevo proyecto de C ++ en Visual Studio 2008. Aún no se ha escrito ningún código; Solo la configuración del proyecto ha sido modificada. Cuando compilo el proyecto, recibo el siguiente error fatal: error fatal LNK1104: no se puede abrir el archivo ‘C: \ Program.obj’

¿Cuándo / Cómo carga Linux las bibliotecas compartidas en el espacio de direcciones?

Mi pregunta es la siguiente: ¿Cuándo se especifica la dirección de los objetos compartidos en los progtwigs? Durante la vinculación? ¿Cargando? Si quisiera encontrar la dirección de memoria del comando del system dentro de libc dentro de mi progtwig, podría encontrarla fácilmente en gdb , pero ¿qué pasa si no quiero incluir el progtwig en […]