Как использовать GCC от Anaconda? Когда я компилирую файлы, он жалуется на отсутствие системных заголовков, таких как stdio.h
Я использую миниконду, чтобы иметь возможность создавать переносимое окружение, которое может переносить собственные зависимости, такие как GCC, в программном приложении.
Я сделал что-то простое, как
conda install gcc
conda install libgcc
и попытался с помощью GCC Конды, чтобы скомпилировать простой файл, как
#include <stdio.h>
int main() {
print('hai world');
}
который бы жаловался,
fatal error: 'stdio.h' file not found
Я делаю это на своем MacBook и не хочу устанавливать инструменты разработчика Xcode, чтобы получить доступ к gcc и его системным заголовкам, потому что я хочу, чтобы это было как можно более переносимым.
Я также попробовал conda-build с рецептами conda для gcc-4.8, но в итоге я пожаловался, что мне нужен cc (компилятор C), который поставляется с Xcode.app, который я не хочу устанавливать.
Есть ли у вас какие-либо идеи, как использовать gcc с системными заголовками через conda, чтобы я мог компилировать файлы с системными заголовками, такими как stdio.h?
0 ответов
Для меня сработало:
- Начните с нуля, установите последнюю версию miniconda. В частности, conda 4.6 переключилась на гораздо лучший решатель SAT для графа зависимостей.
- установите для channel_priority значение false (
conda config --set channel_priority false
) - Минимизируйте набор каналов. Вам, наверное, ДЕЙСТВИТЕЛЬНО нужно только
defaults
а такжеconda-forge
(при желании можно добавить несколько пакетов из других каналов, см. ниже). Так ты можешь бежатьconda config --add channels defaults; conda config --add channels conda-forge
. - Избегайте использования одной массивной среды для различных нужд. Вместо этого создайте среду для каждого проекта / инструмента.
Твой .condarc
файл должен выглядеть так:
$ cat ~/.condarc
channels:
- conda-forge
- defaults
channel_priority: disabled
Если вам нужно установить пакеты вне defaults
а также conda-forge
, вам следует попробовать установить только их с префиксом канала и позволить conda взять их зависимости из defaults
а также conda-forge
, например conda install bioconda::snakemake