Изменение команды по умолчанию [закрыто]

Похоже, что основная проблема с рабочей станцией vmware на 13.04 - это компиляция модулей, таких как vmci.ko. Самый простой способ получить это - apt-get install open-vm-dkms. Это устанавливает vmci.ko и друзей.

1
задан 27 October 2014 в 22:23

3 ответа

Что вам нужно сделать, это связано с программами gcc и ld. Переменные среды C_INCLUDE_PATH и LD_LIBRARY_PATH - это места для поиска заголовков и библиотек соответственно. Gcc-опции -l и -L полезны, обычно объявлять что-то вроде

LIBRARIES = -lcs

LIBDIR = -L / usr / local / lib

Затем используйте эти make-переменные в командах, выполняемых каждым правилом. Если вы установили эти библиотеки с помощью apt-get, могут быть доступны данные конфигурации пакета, см. Команду pkg-config

0
ответ дан 24 May 2018 в 02:29
  • 1
    Я не знаю, что такое переменные среды. Но в любом случае я могу скомпилировать исходный код .c, выполнив gcc -ggdb3 -std=c99 -Wall -Werror hello.c -lcs50 -lm -o hello, и я хочу сделать то же самое, что и make hello.c. – Arturo 26 October 2014 в 11:49
  • 2
    Поговорите с администратором сети вашего отдела, чтобы получить представление об основах, таких как переменные среды. Купить программу начинающих linux wrox – rhubarbdog 26 October 2014 в 16:09
  • 3
    ... программирование. В этом есть много знаний. Команды, подобные apropos, man и info, также помогут – rhubarbdog 26 October 2014 в 16:11

Я не думаю, что это решение вашей проблемы, но чтобы ответить на вопрос, как указано:

Есть несколько способов установить параметры по умолчанию для make:

Использование псевдоним оболочки, например
alias make='make --foo=bar'
в ~/.bashrc или аналогичный. Установка переменной среды MAKEFLAGS для включения параметров по умолчанию. Используя переменную среды MAKEFLAGS, чтобы добавить параметр по умолчанию -e (--environment-overrides), и определите другие переменные, относящиеся к файлам make в ~/.bashrc, которые будут подхвачены make, приоритет над определениями в Makefile

При каждом из этих методов затрагиваются все применения make, что на самом деле не так, как вы хотите.

Лучшее решение, похоже, не должно меняться по умолчанию опции make, но использовать отдельный псевдоним для запуска в интерактивном режиме. Псевдоним может устанавливать параметры для рекурсивных вызовов make.

alias cs50make='make --foo=bar'

или

alias cs50make='MAKEFLAGS="..." make'

или даже

alias cs50make='MAKEFLAGS="-e ..." VAR1="..." VAR2="..." make'

[ ! d13]

Относительно того, что make останавливается на ошибках: обычно это нужно делать по умолчанию, но если он где-то установлен, чтобы не останавливаться, вы можете использовать опцию -S (--no-keep-going, [ f20]) для переопределения.

0
ответ дан 24 May 2018 в 02:29

Вы должны сделать что-то вроде этого,

hello: hello.c

gcc -ohello hello.c -g -lcs50 -lm

Теперь просто введите команду

сделать привет [ ! d3]

0
ответ дан 24 May 2018 в 02:29

Другие вопросы по тегам:

Похожие вопросы: