Как интерпретировать вывод gcc -print-multi-lib
man gcc
объясняет, что -print-multi-lib
списки переключателей и как они разделены, но не то, что, например,
.;
или же
.;
32;@m32
x32;@mx32
может означать. Я даже не могу сказать, есть ли у меня multilib
поддержка в соответствии с просьбой /questions/6504455/oshibka-kompilyatsii-arm-zaregistrirovannyij-vfp-ispolzuetsya-ispolnyaemyim-fajlom-a-ne-obektnyim-fajlom/6504465#6504465.
я использую gcc
5.3.1 и 4.6.3.
1 ответ
Вывод в форму: .;
без каких-либо дополнительных строк означает, что на вашем хосте не было найдено мультилибов.
В общем:
-print-multi-lib
: Эта опция отладки заставляет GCC отображать сопоставление между именами каталогов multilib и переключателями компилятора, которые их включают. Эта информация извлекается из файлов спецификации, используемых компилятором, в котором имя каталога отделяется от переключателей точкой с запятой, и каждый переключатель начинается с символа @ вместо традиционного символа тире / минус, без пробелов между несколькими переключателями,
Источник: "Полное руководство по GCC " Уильяма фон Хагена [2nd edition, Apress 2006]. Обратите внимание - эта книга охватывает версии GCC 4.xy, но я не нашел никакой информации о некоторых радикальных изменениях в этой области в GCC > 5.
Поэтому второй вывод в вашем посте показывает информацию о двух мультилибах.
Использование multilib типично для кросс-компиляции.
Я думаю, что стоит упомянуть еще одну цитату из той же книги о другом полезном переключателе:
-print-multi-directory
: Эта опция отладки заставляет GCC печатать имя каталога, соответствующее мультилибе, выбранному любыми другими переключателями, указанными в командной строке. Предполагается, что этот каталог существует в каталоге, заданном переменной среды GCC_EXEC_PREFIX.