Проблема с линковкой в ​​gcc - PullRequest
0 голосов
/ 28 мая 2010

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

Теперь во время компоновки он выбирает из файла библиотеки, который принадлежит другому заголовку, а не тому, который используется во время компиляции. Из-за этого я получаю ошибку во время ссылки.

Поскольку существует так много библиотек с одинаковыми именами, я не знаю, какую библиотеку подбирают. У меня есть много oems и других пользовательских библиотек, которые являются частью этой сборки.

Я проверил параметры в gcc, который говорит о выборе различных файлов библиотеки для включения. Но не там, где я могу видеть опцию, которая говорит о том, какие библиотеки подбираются компоновщиком.

Если компоновщик может найти более одного имени файла библиотеки, то, что делает компоновщик, я не могу понять. Я не хочу указывать какой-либо путь, скорее я хочу понять, как компоновщик разрешает несколько библиотек, которые он может найти. Я попытался указать параметр -v, но в нем не указан путь, по которому gcc берет библиотеку.

Я использую gcc в Linux.

Любая помощь в этом отношении высоко ценится.

С уважением, Читра

1 Ответ

1 голос
/ 28 мая 2010

Передача -Wl,-t в gcc сообщит ld о том, какие файлы он читает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...