2010-05-28 5 views
0

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

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

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

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

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

Я использую gcc на linux.

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

С уважением, Chitra

+1

Как определить заголовочный файл в нескольких местах? Вы имеете в виду «включить?»? Какую ошибку вы получаете? – WhirlWind

+0

Plz добавить линкера и, возможно, ваш make-файл. –

ответ

1

Передача -Wl,-t в НКУ покажет ЛД сваливать какие файлы он читает.

Смежные вопросы