Estoy programando el lado host de un sistema acelerador de host. El host se ejecuta en la PC bajo Ubuntu Linux y se comunica con el hardware integrado a través de una conexión USB. La comunicación se realiza copiando fragmentos de memoria hacia y desde la memoria del hardware incrustado.¿Qué significa este error de GCC "... relocation truncated to fit ..."?
En la memoria de la placa hay una región de memoria que utilizo como buzón de correo donde escribo y leo los datos. El buzón se define como una estructura y yo uso la misma definición para asignar un buzón espejo en mi espacio de host.
Utilicé esta técnica con éxito en el pasado, así que ahora copié el proyecto de Eclipse del host al espacio de trabajo de mi proyecto actual y realicé los cambios de nombre apropiados. Lo extraño es que cuando la construcción del proyecto de acogida que ahora aparece el siguiente mensaje:
Edificio objetivo: fft2d_host
Invocación: GCC C Enlazador
gcc -L/opt/adapteva/esdk/herramientas/host/x86_64/-o lib "fft2d_host" ./src/fft2d_host.o -le_host -lrt./src/fft2d_host.o: En función `principal:.
fft2d_host.c :(texto + 0x280): reubicación truncada para ajustarse: R_X86_64_PC32 contra el símbolo `Buzón 'definido en la sección COMÚN en ./src/fft2d_host.o
¿Qué significa este error y por qué no se basará en el proyecto actual, mientras que está bien con el proyecto anterior?
Aquí hay una sugerencia: Puede ser crear accidentalmente objeto (s) de 64 bits sin '-fPIC'. Eso me hizo tropezar por un tiempo. –