формат файла не распознан;рассматривается как скрипт компоновщика - PullRequest
4 голосов
/ 05 апреля 2011

Я новичок в компиляторе gcc.

Мой друг написал этот скрипт (графический фильтр) для меня, но я не могу его использовать, потому что получаю какую-то ошибку.

У меня есть 2каталог и файл C:

-dir- include --> basics.h common.h freeimage.h hqx.h imageIO.h pcxIO.h    
-dir- lib --> libfreeimage-3.13.1.so libfreeimage.a libfreeimage.so.3 libhqx.a libhqx.so libhqx.so.1 libhqx.so.1.0.0  
scaling.c

Я пытаюсь скомпилировать с помощью этой команды:

gcc scaling.c -I./include -L./lib -lm -lfreeimage -lhqx -lstdc++ -o filter

Но я получаю эту ошибку:

/usr/lib/gcc/i486-slackware-linux/4.2.4/../../../../i486-slackware-linux/bin/ld:./lib/libhqx.so: file format not recognized; treating as linker script
/usr/lib/gcc/i486-slackware-linux/4.2.4/../../../../i486-slackware-linux/bin/ld:./lib/libhqx.so:1: syntax error
collect2: ld returned 1 exit status

Заранее спасибои извините за мой английский.

Ответы [ 2 ]

6 голосов
/ 05 апреля 2011

Компоновщик будет рассматривать любой файл, который не похож на объектный файл или библиотеку, как сценарий компоновщика, содержащий команды, указывающие, как следует выполнять компоновку. Такие вещи, как адреса загрузки, определения разделов и т. Д.

Очевидно, что libhqx.so не похож на разделяемую библиотеку в вашей системе. Я полагаю, он был построен на системе вашего друга?

Чтобы получить представление о том, что это за файл, используйте команду file. Вы должны получить что-то вроде:

main% file /lib/libc-2.11.2.so 
/lib/libc-2.11.2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

Если нет, вам придется создать или найти библиотеку, совместимую с вашей системой.

3 голосов
/ 13 февраля 2013

У меня вчера была похожая проблема, и я думаю, что ваш libhqx.so был символической ссылкой на libhqx.so.1.0.0 или libhqx.so.1 на компьютере вашего друга, и когда вы копировали эти файлы, эта ссылка сломался. (по крайней мере, такова была ситуация в нашей системе, и проблема была решена после того, как мы удалили файл .so и создали правильную символическую ссылку)

...