gcc грешка при инсталиране на пакет Statnet

Инсталиране на statnet на mac 10.10.3 с R 3.2.x (RStudio 0.99.441).

ld: warning: directory not found for option '-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [latentnet.so] Error 1
ERROR: compilation failed for package ‘latentnet’
* removing ‘/Library/Frameworks/R.framework/Versions/3.2/Resources/library/latentnet’
Warning in install.packages :
installation of package ‘latentnet’ had non-zero exit status
ERROR: dependency ‘latentnet’ is not available for package ‘statnet’
* removing ‘/Library/Frameworks/R.framework/Versions/3.2/Resources/library/statnet’
Warning in install.packages :
installation of package ‘statnet’ had non-zero exit status

Опитах се да актуализирам инструментите на XCode/командния ред. Също така се опитах да не инсталирам зависимости. Успях да инсталирам други пакети, като ergm и sna.

Изглежда, че инсталацията търси папката GCC и не я намира.

whereis gcc

разкрива, че моят gcc е в /usr/bin/gcc

Изглежда, че инсталацията го търси в /usr/local/lib/gcc/

Има ли начин това да се поправи?


person Chris J. Vargo    schedule 02.06.2015    source източник


Отговори (2)


Това е грешка при компилиране, която получавате само ако се опитвате да инсталирате пакети от източника или когато пакет изисква библиотека да бъде компилирана от източника. Обикновено, ако не използвате най-новата версия на R, можете да инсталирате statnet от двоичен файл и по този начин R няма да трябва да компилира изходния пакет.

Версията, която споменавате в началото на вашето съобщение (0.99.441), е версията на вашето R-Studio, а не R. Версията на вашето R е 3.2.x (оттук и неговият адрес в папката Library: /Library/Frameworks/R.framework/Versions/3.2/Resources…). Преди да опитате да поправите грешката при компилиране, може да искате да опитате да върнете вашия R до версия като 3.1.2 или 3.1.3, на която вероятно можете да изтеглите и инсталирате statnet в двоичен формат.

За компилатора, моето предположение е, че дори ако коригирате адреса на вашия gcc със символна връзка, пак ще получите грешка за gfortran или версията на gcc. Веднъж реших този проблем, като инсталирах R и правилната версия на gcc през Homebrew, но точно сега нямам възможност да изпробвам решението и да ви кажа как точно.

Моят опит (на Yosemite) е, че ако използвате 3.1.2 или 3.1.3, дори и да има нужда от компилация, грешката с gcc няма да се появи.

person retrography    schedule 03.06.2015
comment
Имам проблеми с намирането на 2.1.2 или 2.1.3, имате ли връзката? Не е в старото репо на cran. - person Chris J. Vargo; 04.06.2015
comment
Това е 3.1.3, а не 2.1.3, нарочно ли е? - person Chris J. Vargo; 04.06.2015
comment
Моя грешка. Правилната версия беше 3.1.2/3.1.3. Двоичните файлове на R пакета са съвместими с незначителни промени на версията, напр. от 3.1.2 до 3.1.3. Това, с което се борите е (да се надяваме), че сте преместили една основна версия до 3.2, което налага повторно компилиране на някои пакети и изглежда makefile търси в грешни папки. Проверете 3.1.3 и ми кажете дали работи. Дано да стане. Когато стартирате R след инсталиране на по-старата версия, уверете се, че работещият R е версията, която току-що сте инсталирали. R прави подкана за версия, когато го стартирате. Просто напишете R в командния ред - малки и големи букви. - person retrography; 04.06.2015

sudo mkdir /usr/bin/lib && sudo ln -s /usr/bin/gcc /usr/bin/lib/gcc

Създава нова директория в /usr/bin, наречена `lib', и създава символна връзка към gcc в тази нова директория.

Ако това не поправи грешката, можете да я отмените с:

sudo rm -i /usr/bin/lib/gcc && sudo rm -id /usr/bin/lib

person hgiesel    schedule 02.06.2015
comment
Благодаря ви, че опитахте, тази връзка работи, но все още търси подпапка, която не е в моята инсталация на gcc, и библиотека „lgfortran“, която също изглежда не е там - person Chris J. Vargo; 03.06.2015