вопрос о компоновщике g ++ - PullRequest
       33

вопрос о компоновщике g ++

1 голос
/ 28 февраля 2011

Я пытаюсь выяснить что-то, что вызывает ошибку при попытке скомпилировать код в Qt Creator, который ссылается на мои внешние библиотеки.

Он жалуется на "неопределенную ссылку на myclass:: myclass (args) "constructor.

Однако этот класс был построен, и объектный файл был включен в архив с именем common.a.

Код, который ссылается на myclass, фактически находится в другой библиотеке, называемой CSV.a

Итак, я знаю, что мой проект Qt может видеть CSV.a, и я знаю, что есть другие ссылки на вещив common.a, на который он не жалуется, но, видимо, материал в CSV.a не может увидеть материал в common.a в этом расположении.

Что мне нужно сделать по-другому?

Ответы [ 2 ]

4 голосов
/ 28 февраля 2011

Компоновщик использует порядок, в котором библиотеки перечислены в командной строке, чтобы определить, какие символы действительно необходимы.Вы должны упорядочить их от наиболее зависимых к наименее зависимым, чтобы он мог сделать это определение.Например, сначала перечислите CSV.a, чтобы компилятор знал, что ему нужно где-то найти myclass::myclass(args).Затем перечислите common.a second, и компилятор найдет и свяжет этот конструктор.

0 голосов
/ 28 февраля 2011

Возможно, вам нужно убедиться, что в командной строке компоновщика CSV.a стоит common.a, а не наоборот.

...