Articles of enlazador

error LNK2005: ya definido – C ++

Fondo Tengo un proyecto llamado PersonLibrary que tiene dos archivos. Person.h Person.cpp Esta biblioteca produce un archivo de biblioteca estática. Otro proyecto es TestProject que usa PersonLibrary (agregado a través de dependencias de proyecto en VS008). Todo funcionó bien hasta que agregué una función no miembro a Person.h . Person.h parece class Person { public: […]

¿Hay alguna manera de hacer que gcc emita código binario sin formato?

¿Hay un conjunto de opciones de línea de comandos que convenzan a gcc para producir un archivo binario plano a partir de un archivo fuente independiente? Por ejemplo, supongamos que los contenidos de foo.c son static int f(int x) { int y = x*x; return y+2; } Sin referencias externas, nada para exportar al enlazador. […]

vincular categorías objective-c en una biblioteca estática

Estoy desarrollando un complemento para una aplicación iOS. Lo estoy comstackndo en un archivo .a que luego es utilizado por el proyecto principal de xcode. Hasta ahora, he creado una categoría de la clase UIDevice en esta biblioteca. Cuando ejecuto el proyecto principal utilizando esta biblioteca, se bloquea debido a un selector no reconocido – […]

¿Puedo mezclar bibliotecas estáticas y de objetos compartidos al vincular?

Tengo un proyecto en C que produce diez ejecutables, a todos los cuales me gustaría vincular de forma estática. El problema al que me enfrento es que uno de estos ejecutables utiliza una biblioteca de terceros, de la cual solo está disponible la versión de objeto compartido. Si paso el indicador -static a gcc, ld […]

Cómo forzar la inclusión de definiciones de objetos “sin usar” en una biblioteca

Mi pregunta es similar a estas, pero no parece correlacionarse exactamente: ¿Cómo forzar la inclusión de un archivo de objeto en una biblioteca estática cuando se vincula a ejecutable? Forzar la exportación de símbolos con MSVC Lo que tengo es algo así: struct thingy; struct container { static container& instance(); // singleton int register_thingy(thingy*); }; […]

preguntas sobre el cambio de nombre en C ++

Estoy tratando de aprender y entender el cambio de nombres en C ++. Aquí hay algunas preguntas: (1) De devx Cuando una función global está sobrecargada, el nombre destrozado generado para cada versión sobrecargada es único. El cambio de nombre también se aplica a las variables. Por lo tanto, una variable local y una variable […]

Referencia indefinida a ‘initscr’ Ncurses

Estoy tratando de comstackr mi proyecto y uso el lib ncurse. Y tengo algunos errores cuando el comstackdor vincula archivos. Aquí está mi línea de banderas en Makefile: -W -Wall -Werror -Wextra -lncurses He incluido ncurses.h Algunos diseños: prompt$> dpkg -S curses.h libslang2-dev:amd64: /usr/include/slcurses.h libncurses5-dev: /usr/include/ncurses.h libncurses5-dev: /usr/include/curses.h prompt$> dpkg -L libncurses5-dev | grep .so […]

Cuda C – Error del enlazador – referencia indefinida

Estoy teniendo dificultades para comstackr un progtwig simple de cuda con solo dos archivos. El main.c se ve así: #include “my_cuda.h” int main(int argc, char** argv){ dummy_gpu(); } La cuda.h se ve así: #ifndef MY_DUMMY #define MY_DUMMY void dummy_gpu(); #endif Y el archivo my_cuda.cu pierde así: #include #include “my_cuda.h” __global__ void dummy_gpu_kernel(){ //do something } […]

“/ Usr / bin / ld: no se puede encontrar -lz”

Estoy tratando de comstackr el código fuente de Android en Ubuntu 10.04. Me sale un error al decir, / usr / bin / ld: no se puede encontrar -lz ¿Puedes decirme cómo puedo solucionarlo? ¿Qué no cannot find -lz significa? Aquí está el mensaje de error completo: external/qemu/Makefile.android:1101: warning: overriding commands for target `external/qemu/android/avd/hw-config-defs.h’ external/qemu/Makefile.android:933: […]

¿Cómo especificar la preferencia de la ruta de la biblioteca?

Estoy comstackndo un progtwig de c ++ usando g++ y ld . Tengo una biblioteca .so que quiero usar durante la vinculación. Sin embargo, existe una biblioteca del mismo nombre en /usr/local/lib , y ld está eligiendo esa biblioteca sobre la que estoy especificando directamente. ¿Cómo puedo arreglar esto? Para los ejemplos a continuación, mi […]