макет buildtools в 23.0.0.rc2 был возвращен
, поэтому, чтобы иметь возможность его использовать, вам необходимо обновить плагин до 1.3.0-beta2 или выше, как показано ниже:
[/g0]
Порядок, в котором вы указываете объектные файлы и библиотеки, ОЧЕНЬ важен в GCC - если вас это не укусило до того, как вы прожили очаровательную жизнь. Компоновщик ищет символы в том порядке, в котором они появляются, поэтому, если у вас есть исходный файл, содержащий вызов библиотечной функции, вам нужно поместить его перед библиотекой, иначе компоновщик не узнает, что он должен разрешить его. Сложное использование библиотек может означать, что вам придется указывать библиотеку более одного раза, что является королевской болью, чтобы добиться правильного.
Порядок передачи библиотек в gcc/g++ действительно имеет значение. Если A
зависит от B
, то A должна быть указана первой. Причина в том, что он оптимизирует символы, на которые нет ссылок, поэтому если он первым увидит библиотеку B
, а на нее в этот момент никто не ссылался, то он вообще не будет ничего из нее линковать.
Статическая библиотека - это набор объектных файлов, сгруппированных в архив. При связывании с ним компоновщик выбирает только те объекты, которые ему необходимы для разрешения любых в настоящее время неопределенных символов. Поскольку объекты связаны в порядке, указанном в командной строке, объекты из библиотеки будут включены только в том случае, если библиотека появится после всех объектов, которые от нее зависят.
Таким образом, порядок ссылок очень важен; если вы собираетесь использовать статические библиотеки, вам нужно следить за зависимостями и не вводить циклические зависимости между библиотеками.