Вам необходимо настроить сценарии сборки так, чтобы объектные файлы для разных архитектур записывались в разные каталоги. Естественно, не будет конфликтов между объектами Windows и объектами Unix, поскольку они используют разные имена файлов ( *. Obj
и *. Exe
vs. *. O
и *
), но системы Unix используют те же имена файлов.
Как вариант, распакуйте исходные коды в разные каталоги для каждой сборки.
Что касается библиотек, вам необходимо установить 32-разрядные (…: i386
) пакеты разработки вместе с собственными 64-разрядными. В качестве альтернативы, настроить 32-разрядную установку в chroot , которая использует несколько ГБ дискового пространства, но требует минимального обслуживания и является самым простым способом надежного создания пакетов для других дистрибутивов, кроме того, который вы используете. Бег.
Хотите что-то подобное?
function get_column
{
awk -v val=$1 '{print $val}' list.txt
}
Выше возвращается соответствие столбца с передачей $1
в функцию. если вам действительно нужно напечатать совпадение строки с номером строки в $1
из функции, вместо этого используйте ниже.
function get_row
{
awk -v val=$1 'NR==val{print ; exit}' list.txt
}
Или пусть оболочка оценит и установит значение val
и напечатает его в awk
следующим образом:
function get_column
{
awk '{print $val}' val=$1 list.txt
}
function get_row
{
awk 'NR==val{print ; exit}' val=$1 list.txt
}
Здесь вы передаете val
только числа и , если val
содержит обратную косую черту escape-символ, вы столкнетесь с проблемой , которая awk
выполняет обработку escape-последовательности C на значения, переданные через -v val=
, и переменная оболочки с val="\\n"
изменятся на значение с \n
с помощью awk .
Вы можете использовать:
field=$1 awk '{print $ENVIRON["field"]}'
он работает во всех POSIX-совместимых системах, и вам не нужно беспокоиться о внедрении кода при использовании-v val=
Также функция должна называться get_column
вместо get_row
.