Как настроить и использовать ccache (с cygwin) в Windows?

#c #windows #gcc #cygwin #ccache

#c #Windows #gcc #cygwin #ccache

Вопрос:

Я не могу настроить Ccache в Windows с помощью Cygwin.

Что я хочу сделать? Я хочу установить CCache на ПК с Windows, чтобы я мог использовать его для компиляции проектов на C и C .

Я почти ничего не знаю о C / C и обо всем, что касается компилятора GCC / G .
основные источники моих подходов:
https://wiki .archlinux.org/index.php/ccache
http://charette.no-ip.com:81/programming/2016-02-07_CCache/index.html
https://askubuntu.com/questions/470545/how-do-i-set-up-ccache

Ccache создан только для Unix-систем, поэтому для получения команд bash я установил Cygwin для Windows.
Я также установил MinGW32 на свой диск C: /. В Cygwin я установил следующие пакеты: (Просмотр: Выбранный)

 - autoconfig                    13-1
- ccache                        3.1.9-2
- ccache-debuginfo              3.1.9-2
- fish                          2.7.0-1
- gcc-tools-epoch2-autoconf     2.64-2
- gperf                         3.1-1
- libgcc1                       7.4.0-1
- make                          4.2.1-2
- mingw64x86_64-gcc-core        7.4.0-1
- mingw64x86_64-gcc-debuginfo   7.4.0-1
- mingw64x86_64-gcc-g           7.4.0-1
  

После установки я могу использовать «ccache -V» внутри Cygwin, и он сообщает мне, что я получил версию 3.1.9

согласно руководствам, которые я выполняю, я должен получить:

 /usr/lib/ccache/gcc 
/usr/lib/ccache/g  
  

если я введу команду: «какой gcc g «.
Но я получаю по умолчанию следующее:

 /cygdrive/c/mingw/bin/gcc
/cygdrive/c/mingw/bin/g  
  

Итак, я хотел изменить путь.
Но структура ccache внутри cygwin, похоже, сильно отличается от того, когда вы устанавливаете его с помощью sudo на компьютере unix.
Я не могу найти какие-либо компиляторы gcc или g внутри ccache или вообще в cygwin.
Но ccache также отсутствует в usr / lib / ccache в cygwin. Если я введу «какой ccache», он даст мне путь usr / bin / ccache.

У меня нет идей, и кажется, что мне просто не хватает знаний о компиляторах C в целом, чтобы получить представление о том, что делать / где искать.

Комментарии:

1. Visual Studio также имеет «предварительно скомпилированные заголовки», чтобы делать то, что вы хотите. Забудьте обо всем, что связано с cygwin, и вообще обо всем, что пытается реализовать аспекты программирования Linux в Windows.

2. Я хотел бы рассказать вам о настройке этого, потому что это не сложно. Но, может быть, вы могли бы добавить кое-что еще о том, какие «проекты на C и C » вы хотите создать. Вы имеете в виду только некоторые общие программы Windows (в этом случае вам лучше использовать Visual Studio)? Или вы пытаетесь скомпилировать Linux и / или POSIX-ориентированный код с помощью связанных с ними инструментов сборки? Что конкретно вы пытаетесь сделать.

3. Что касается Cygwin против MingGW, это две отдельные, в основном несовместимые вещи. MinGW — это набор общих инструментов сборки UNIX и связанных со сборкой инструментов, скомпилированных изначально для Windows, так что легко запускать gcc в Windows и некоторые другие вещи, но он не обеспечивает полный уровень эмуляции POSIX. Это то, что делает Cygwin. Cygwin предоставляет более «полный» UNIX-подобный интерфейс в Windows с поддержкой компиляции и запуска большинства POSIX-совместимого кода практически без изменений. Если вы хотите полностью использовать UNIX-подобный интерфейс на рабочем столе Windows, используйте это.

4. Причина which gcc , по которой что-то возвращается, заключается в том, /cygdrive/c/mingw что так или иначе вы закончили (возможно, через a .bashrc или a .profile )? с конфигурацией, которая C:MinGW слишком рано ставит на ваш $PATH . Это, или вы просто не установили пакет gcc Cygwin.

5. Путь установки оболочек компилятора ccache, подобных /usr/lib/ccache/gcc вашему $PATH , по умолчанию отсутствует. Обычная вещь, которую нужно сделать для настройки ccache, — это вручную создать символическую ссылку, например ln -s /usr/lib/ccache/gcc /usr/local/bin/gcc . /usr/local/bin обычно перед /usr/bin on $PATH , так что это переопределит ваше значение по умолчанию gcc .