Ошибка скрипта ld linker - PullRequest
       14

Ошибка скрипта ld linker

0 голосов
/ 24 декабря 2010

В проекте, над которым я сейчас работаю, используется набор динамических библиотек, связанных с исходным кодом. Существует подмножество библиотек, которое называется следующим образом:

для данной библиотеки libABC существует четыре файла:

libABC.so

libABC.so.4

libABC.so.4.5

libABC.so.4.5.0

Они прикованы гирляндами вот так:

первый файл, libABC.so, содержит следующее:

link libABC.so.4

тогда как следующий файл, libABC.so.4, содержит следующее:

link libABC.so.4.5

и т. Д. До фактического файла lib, libABC.so.4.5.0.

Я знаю, что такого рода вещи должны быть сделаны с использованием символических ссылок, но мы не можем это изменить, это коммерческий проект. Так что компоновщик задыхается от этого!

/usr/bin/ld: path/to/the/packaged/libs/libABC.so:unrecognized file format, treating as linker script

(что на самом деле, хе)

/usr/bin/ld: path/to/the/packaged/libs/libABC.so:1:syntax error

Теперь я не могу найти какую-либо информацию о команде "link" скрипта компоновщика GNU ld или какую-либо полную ссылку на команды скрипта компоновщика GNU ld.

Что бы это могло быть?

Ответы [ 2 ]

1 голос
/ 18 декабря 2015

Я сам нашел эту проблему сегодня, и что происходит, когда вы делаете проверку с использованием SVN в Windows (например, TortoiseSVN), символическая ссылка Linux преобразуется в текстовый файл.

Затем в процессе сборки ld получает текстовый файл вместо символической ссылки, которая приведет к конкретному файлу.

Решение: svn checkout на компьютере с Linux.

1 голос
/ 25 марта 2011

Формат сценария компоновщика описан в руководстве GNU ld .

...