![Как указать компилятор для установки гостевых дополнений VirtualBox?](https://rvso.com/image/1490241/%D0%9A%D0%B0%D0%BA%20%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%20%D0%B4%D0%BB%D1%8F%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%B3%D0%BE%D1%81%D1%82%D0%B5%D0%B2%D1%8B%D1%85%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9%20VirtualBox%3F.png)
Я хотел бы иметь возможность использовать определенную версию для gcc
сборки гостевых дополнений VirtualBox 5.0.16 внутри гостевой ОС Ubuntu 14.04, чтобы избежать ошибок. VBoxLinuxAdditions.run --help
не дает никакой информации и не делаетинструкции по сборке.
Я получаю двоичные файлы гостевых дополнений из встроенного Insert Guest Additions CD image
пункта меню функций, который автоматически монтирует ISO-образ внутри Ubuntu.
решение1
Дальнейшее изучение исходного кода показывает, что они используют automake. Вы можете настроить компилятор с помощью переменных окружения, которые Makefile будет использовать для компиляции исходного кода.
Расположение источника запутано. Чтобы найти полный исходный код, вам нужно найти файл tar, добавленный в конец скрипта оболочки VBoxLinuxAdditions.run, и распаковать его, он содержит два файла tar, которые содержат исходный код. (VBoxGuestAdditions-x86.tar.bz2 и ./VBoxGuestAdditions-amd64.tar.bz2) Это код, который будет скомпилирован на гостевой системе. Скрипт оболочки нужно немного изменить, чтобы он мог выгружать свои файлы.
После того, как у вас есть исходный tar-архив, распакуйте нужный вам и с его помощью make CC=<path to required gcc>
вы сможете указать компилятор, который вы хотите использовать при сборке.
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor