Не удается установить пакет `proj4`, поскольку libproj и/или proj_api.h не найдены в стандартных местах поиска.

Я хочу установить пакет ggalt, для которого требуется установленный пакет proj4, но когда я устанавливаю proj4, возникает ошибка libproj and/or proj_api.h not found in standard search locations.

Мой компьютер — Mac, и я установил PROJ.4 с помощью brew install proj, а версия R — 3.6.0_2. Я искал в Интернете эту проблему, но не нашел способа ее решить. Я не кодер и только начинаю изучать R, поэтому я не знаю, как это сделать сейчас.

Ошибка отображается, как показано ниже:

* installing *source* package ‘proj4’ ...
** package ‘proj4’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking proj_api.h usability... no
checking proj_api.h presence... no
checking for proj_api.h... no
checking for pj_init_plus in -lproj... yes
configure: error: libproj and/or proj_api.h not found in standard search locations.

*** Install PROJ.4 and if necessary set PKG_CPPFLAGS/PKG_LIBS accordingly.
ERROR: configuration failed for package ‘proj4’
* removing ‘/usr/local/lib/R/3.6/site-library/proj4’

The downloaded source packages are in
    ‘/private/var/folders/sn/1d6n55qs0zl522kcc769jq5h0000gn/T/RtmpNOkU64/downloaded_packages’

person juby    schedule 25.05.2019    source источник
comment
Содержит ли proj необходимое proj_api.h? Где он находится? brew ls --verbose proj должен помочь ответить на эти вопросы.   -  person Ralf Stubner    schedule 27.05.2019
comment
proj_api.h находится в /usr/local/Cellar/proj/6.1.0/include/proj_api.h   -  person juby    schedule 27.05.2019
comment
Можете ли вы определить переменную среды от PKG_CPPFLAGS до -I/usr/local/Cellar/proj/6.1.0/include/ до установки пакета proj4?   -  person Ralf Stubner    schedule 27.05.2019
comment
Я использую export PKG_CPPFLAGS="-I/usr/local/Cellar/proj/6.1.0/include" и Sys.setenv("PKG_CPPFLAGS"="-I/usr/local/Cellar/proj/6.1.0/include") ,но не работает   -  person juby    schedule 27.05.2019
comment
Сообщение об ошибке остается прежним? Кстати, почему вы не используете бинарные пакеты, доступные в CRAN. Я попытался воспроизвести проблему, и пакет был установлен без проблем.   -  person Ralf Stubner    schedule 27.05.2019
comment
Связанный: stackoverflow.com/questions/55246764/   -  person DirtStats    schedule 15.10.2020


Ответы (2)


Я использую Pop!_OS 20.04 (форк Ubuntu) и столкнулся с той же проблемой, когда proj4 не устанавливается (R 3.6.3). Я не верю, что libproj еще не установлен. Я смог сделать это вручную через терминал с помощью этой команды:

sudo apt-get install libproj-dev

Я перезапустил R и смог установить proj4.

person DirtStats    schedule 15.10.2020

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

Я нашел в верхней части proj_api.h:

#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
#error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
#endif

Я подумал, что могу вставить

#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H

перед строкой 7 в src/p4.c и строкой 1462 в configure источника пакета (в обоих случаях непосредственно перед #include).

Я полагаю, что можно также удалить раздел из proj_api.h - однако я не имею ни малейшего понятия, может ли это что-то сломать.

person bdecaf    schedule 16.06.2019