Articles of linker

¿Cómo hacer que los enlaces débiles funcionen con GCC?

Parece haber 3 formas de decirle a GCC que vincule débilmente un símbolo: __attribute__((weak_import)) __attribute__((weak)) #pragma weak symbol_name Ninguno de estos funciona para mí: #pragma weak asdf extern void asdf(void) __attribute__((weak_import, weak)); … { if(asdf != NULL) asdf(); } Siempre obtengo un error de enlace como este: Símbolos indefinidos: “_asdf”, referenciado de: _asdf $ non_lazy_ptr […]

Error de vinculador MinGW: winsock

Estoy usando el comstackdor MinGW en Windows para comstackr mi aplicación C ++ con sockets. Mi comando para vincular se ve así: g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot of object files } y también he intentado g++.exe -Wall -Wno-long-long -pedantic -lws2_32 -o dist/Windows/piskvorky { there are a lot of […]

¿Por qué mis guardias de comstackción no previenen múltiples inclusiones de definición?

Tengo un archivo de encabezado xh que está incluido en más de un archivo fuente * .c. Este archivo de encabezado tiene algunas variables de estructura definidas. He puesto múltiples guardias de prevención de inclusión al comienzo del archivo de encabezado como: #ifndef X_H #define X_H … .. //header file declarations and definitons. #endif//X_H En […]

El estado de Linkers para aplicaciones .NET (también conocido como “Please Sir, May I have a Linker” edición 2009)

Mucha gente aquí probablemente esté familiarizada con una de las publicaciones de blog más populares de Joel Spolsky , ” Por favor , señor, puedo tener un enlazador” , donde solicita una forma de eliminar las dependencias en el marco .NET para que se pueda desarrollar una aplicación independiente. vendido. Jason Zander, del equipo de […]

cómo vincular la biblioteca (por ejemplo, CUBLAS, CUSPARSE) para CUDA en Windows

Estoy intentando comstackr un progtwig cuda que usa la biblioteca cusparse. Estoy recibiendo un error de enlace: kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main Y muchos errores del mismo tipo relacionados con la biblioteca cusparse. He incluido “cusparse_v2.h”. ¿Cómo conecto la biblioteca cusparse en visual studio 2010 durante la comstackción?

¿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 […]